Replay attacks play a large role in fraudulent transactions, particularly electronic transactions. In a replay attack, data from an earlier transaction is fraudulently or maliciously repeated in a new transaction, particularly to authenticate a user or device.
Machine readable secure identity tokens are known to be used in authentication, such as the barcode on a driver license or any other type of ID card. As the use of mobile phone cameras, the conventional physical token can be scanned by the digital camera and used for authentication or identification. However, such a static security token is subjected to replay attacks.
Accordingly, a need exists for improved systems and methods for authentication of a user identity with resistance to replay attacks.
In one aspect of the invention, a method of performing anti-replay analysis is provided. Methods and systems are provided for user authentication using tokens with resistance to replay attacks. A user device equipped with a camera may be used to take an image of a physical token during a transaction. Additionally or alternatively, the user device with a camera may be used to capture a “selfie” image or photograph or video-clip of the user during a transaction. Data relating to a state of the image, a state of the camera or a state of the user device may be collected at the time of a transaction. Such data may be used to create a singularity value or a ‘nonce’ which may not be repeated, or is extremely unlikely to be repeated. If nonce data is identically repeated in a subsequent transaction, it may raise a red flag that may indicate that the subsequent transaction is a likely replay attack, since it extremely unlikely the nonce data would repeat.
In one aspect, a method for authenticating a user or a transaction is provided. The method comprises: capturing image data of a physical token using a user device, wherein the image data includes a graphical code; obtaining identification information about the user from the image data; collecting nonce data comprising (1) a physical state of the user device or (2) a characteristic of the image data that is unique to the user device at a moment in time during which the nonce data is collected; and authenticating, with aid of one or more processors, the user or the transaction based on (1) the identification information and (2) the nonce data.
In some embodiments, the physical token comprises the graphical code that comprises the identification information about the user. In some embodiments, the physical token is issued by an authority entity and is associated with an identity of the user.
In some embodiments, the nonce data comprises at least two of the following: (i) one or more operational parameters of an imaging device coupled to the user device for the operation of capturing the image data, (ii) positional information about the imaging device or the user device, and (iii) characteristics of the image data derived from image processing of the image data. In some cases, the nonce data about the physical state of the user device comprises data collected by one or more sensors. In some cases, the physical state of the user device comprises data indicative of a physical state of a component of the user device, and in some situations the component is selected from the group comprising an imaging device, a power supply unit, a processor, and a memory. In some embodiments, the characteristic of the image data comprises at least one of the following: (i) one or more parameters produced during image processing, (ii) one or more properties of the raw image data, and (iii) one or more properties of the processed image data.
In some embodiments, the nonce data is encrypted such that when the nonce data comprises two or more factors, and these factors are not accessible by the one or more processors. In some embodiments, the nonce data and identification data are compared with a previously collected nonce data and a previously collected identification data to determine a presence of a replay attack.
In another aspect, a system for performing authentication of a user or a transaction is provided. The system comprises: a server in communication with a user device configured to permit a user to perform a transaction, wherein the server comprises: (i) a memory for storing a set of software instructions, and (ii) one or more processors configured to execute the set of software instructions to: receive nonce data comprising (1) a physical state of the user device and (2) a characteristic of an image data that is unique to the user device at a moment in time during which the nonce data are collected, wherein the image data comprises a graphical code; receive the image data of a physical token possessed by the user; obtain identification information about the user from the image data; and authenticate the user or the transaction based on (1) the identification information and (2) the nonce data.
In some embodiments, the physical token comprises the graphical code that comprises the identification information about the user. In some embodiments, the physical token is issued by an authority entity and is uniquely associated with an identity of the user.
In some embodiments, the nonce data comprises at least two of the following: (i) one or more operational parameters of an imaging device coupled to the user device for the operation of capturing the image data, (ii) positional information about the imaging device or the user device, and (iii) the characteristic of the image data derived from image processing of the image data. In some cases, at least one of the one or more operational parameters of the imaging device is varied in response to an instruction generated by the system. In some embodiments, the physical state of the user device comprises data collected by one or more sensors. In some embodiments, the physical state of the user device comprises data indicative of a physical state of a component of the user device, and wherein the component is selected from the group comprising an imaging device, a power supply unit, a processor, and a memory. In some embodiments, the characteristic of the image data comprises at least one of the following: (i) one or more parameters produced during image processing, (ii) one or more properties of the raw image data, and (iii) one or more properties of the processed image data. In some embodiments, the nonce data and identification data are compared with a previously collected nonce data and a previously collected identification data to determine a presence of a replay attack.
In another aspect, a method for authenticating a user or a transaction with anti-replay protection is provided. The method comprises: capturing image data of a physical token using a user device; collecting nonce data about (1) a physical state of the user device related to the operation of capturing the image data or (2) a characteristic of the image data that is unique to the user device at a moment in time during which the nonce data is collected; obtaining identification information about the user device or the user; comparing, with aid of one or more processors, the nonce data and the identification information with a previously collected nonce data and a previously collected identification information; and determining, with aid of the one or more processors, a presence of a replay attack based on whether the nonce data and the previously collected nonce state data are identical. In some embodiments, the nonce data comprises at least one of the following: (i) one or more operational parameters of an imaging device coupled to the user device during the operation of capturing the image data, (ii) positional information about the imaging device or the user device, and (iii) one or more characteristics of the image data derived from image processing of the image data.
All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.
A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which:
While preferable embodiments of the invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention.
The invention provides systems and methods for user authentication using tokens with resistance to replay attacks. Various aspects of the invention described herein may be applied to any of the particular applications set forth below. The invention may be applied as an authentication system or as a standalone anti-replay system, fraud detection software, or any transaction process that requires identity verification or authentication. It shall be understood that different aspects of the invention can be appreciated individually, collectively or in combination with each other.
Transactions may be events or activities that require user authentication or identity verification. User identity information may be provided based on a physical token, such as a machine readable secure identity token (e.g., barcode on the user's ID card). For on online transaction, users may scan the physical token and transmit the ID information to a service provider for identity verification. In some cases, biometric authentication using facial recognition may be used for identity verification or authentication. For example, a user may be authenticated by capturing a selfie image or facial recognition. In some cases, capturing a selfie image may be used as alternative to taking image of the physical token. In some cases, capturing a selfie image may be performed in addition to authentication using a physical token. Transactions may occur online, where data may be easily intercepted. For instance, information about a user during a first transaction may be recorded. The recorded information may be used in a subsequent transaction in a replay attack, to appear to be the same user that appeared in the first transaction, or permit the subsequent transaction to go through. The recorded information may pertain to conditions of the first transaction, such as nonce data related to a state of scanned image data or an imaging device used in the first transaction. Detection of a repetition of nonce data may indicate a replay attack is occurring.
In some embodiments, nonce data may be collected relating to a state of a scanned image or an imaging device during the first transaction. The nonce data may include one or more sets of singularity values (e.g., nonce factors) that may realistically only occur once, and would not naturally be repeated. Thus, repetition of the nonce data may be cause for suspicion that a replay attack may be occurring. The nonce data may relate to an internal state of the imaging device or component of the imaging device, or may include data that may be collected relating to a scanned image that contains identification data of a user. The nonce data may include image capture information such as metadata, positional information, or any other information relating to the imaging device. The nonce data may also include data generated during processing the image for context analysis.
Nonce data may be collected with aid of one or more sensors and one or more processors. The sensor(s) and processor(s) may be on-board the device. The sensor(s) and processor(s) may or may not require the use of external signals or data collected from outside the device.
The user device 100 may be an electronic device capable of aiding in a transaction or identifying and/or authenticating a user. The user device may be mobile device (e.g., smartphone, tablet, pager, personal digital assistant (PDA)), a computer (e.g., laptop computer, desktop computer, server, or any other type of device. The user device may optionally be portable. The user device may be handheld. The user device may be lightweight. In some embodiments, the user device may weigh 10, 8, 6, 5, 4, 3, 2, 1.5, 1, 0.7, 0.5, 0.3 0.1, 0.05, 0.01, 0.005, or 0.001 kg or less.
The user device may be a network device capable of connecting a network, such as a local area network (LAN), wide area network (WAN) such as the Internet, a telecommunications network, a data network, or any other type of network. The user device may be capable of direct or indirect wireless communications. The user device may be capable of peer-to-peer (P2P) communications and/or communications with cloud-based infrastructure.
The user device may be used during transactions (such as financial transactions) with a transaction entity. Transactions may include the exchange of finances (e.g., money, notes, debt, loans, etc.). The transactions may include the exchange of goods or services. The transactions may include the exchange of information. The transactions may include user identity verification or authentication to a user access to information or a place. In some instances, the transactions may include the exchange of data that is sensitive and/or is not publicly available. A transaction entity may include any entity involved in a transaction. A transaction entity may be an individual, company, partnership, corporation, organization, group, host, or any other type of entity. In some examples transaction entities may include financial institutions (e.g., banks, financial management companies), merchants (e.g., stores, online merchants), social networking companies, non-profit organizations, health care organizations, educational institutions, governmental bodies or agencies, or any other type of entity. The user device may be capable of communicating directly or indirectly with a transaction entity. In some embodiments, the transaction entities may use or be a server or other type of online host. The user device may communicate with the server and/or other host device of the transaction entities.
The user device may include a display 102. The display may show in real time one or more static images (e.g., photographs) and/or dynamic images (e.g., video) captured by an imaging device. The display may be able to present information to a user. The display may visually illustrate information. The information shown on the display may be changeable. The display may include a screen, such as a liquid crystal display (LCD) screen, light-emitting diode (LED) screen, organic light-emitting diode (OLED) screen, plasma screen, electronic ink (e-ink) screen, touchscreen, or any other type of screen or display. The display may or may not accept user input.
The display may show a graphical user interface 104. The graphical user interface may be part of a browser, software, or application that may aid in the user performing a transaction using the device. The interface may allow the user to self-identify using the device. The user may access a user account using the device. The user account may be used during a transaction. The user device may be capable of operating one or more software applications. One or more applications may or may not be related to an electronic transaction. One or more applications may require or use user identification and/or authentication.
The user device may be capable of accepting inputs via a user interactive device. Examples of such user interactive devices may include a keyboard, button, mouse, touchscreen, touchpad, joystick, trackball, camera, microphone, motion sensor, heat sensor, inertial sensor, or any other type of user interactive device.
The user device may comprise one or more memory storage units 106 which may comprise non-transitory computer readable medium comprising code, logic, or instructions for performing one or more steps. The user device may comprise one or more processors 108 capable of executing one or more steps, for instance in accordance with the non-transitory computer readable media. The one or more memory storage units may store one or more software applications or commands relating to the software applications. The one or more processors may, individually or collectively, execute steps of the software application.
A communication unit 110 may be provided on the device. The communication unit may allow the user device to communicate with an external device. The external device may be a device of a transaction entity, server, or may be a cloud-based infrastructure. The communications may include communications over a network or a direct communication. The communication unit may permit wireless or wired communications. Examples of wireless communications may include, but are not limited to WiFi, 3G, 4G, LTE, radiofrequency, Bluetooth, infrared, or any other type of communications. The communications unit may or may not aid in collecting data used for determination of nonce data.
The device may have an on-board power source 112. Alternative, an external power source may provide power to power the user device. An external power source may provide power to the user device via a wired or wireless connection. An on-board power source may power an entirety of the user device, or one or more individual components of the wireless device. In some embodiments, multiple on-board power sources may be provided that may power different components of the device. For instance, one or more sensor of the device may be powered using a separate source from one or more memory storage unit, processors, communication unit, and/or display of the device.
The user device may comprise an imaging sensor serves as imaging device 114. The imaging device 114 may be on-board the user device. The imaging device can include hardware and/or software element. In some embodiments, the imaging device may be a camera operably coupled to the user device. In some alternative embodiments, the imaging device may be located external to the user device, and image data of a graphical element such as barcode may be transmitted to the user device via communication means as described elsewhere herein. The imaging device can be controlled by an application/software configured to scan a visual code. In some embodiments, the camera may be configured to scan a barcode on an ID card, a passport, a document, or displayed on an external display. In some embodiments, the software and/or applications may be configured to activate the camera on the user device to scan the code. In other embodiments, the camera can be controlled by a processor natively embedded in the user device.
The imaging device 114 may be a fixed lens or auto focus lens camera. An imaging device may make use of complementary metal oxide semiconductor (CMOS) sensors that generates electrical signals in response to wavelengths of light. The resultant electrical signals can be processed to produce image data. The imaging device may include a lens configured to direct light onto an imaging sensor. A camera can be a movie or video camera that captures dynamic image data (e.g., video). A camera can be a still camera that captures static images (e.g., photographs). A camera may capture both dynamic image data and static images. A camera may switch between capturing dynamic image data and static images. Although certain embodiments provided herein are described in the context of cameras, it shall be understood that the present disclosure can be applied to any suitable imaging device, and any description herein relating to cameras can also be applied to any suitable imaging device, and any description herein relating to cameras can also be applied to other types of imaging devices. The camera may comprise optical elements (e.g., lens, mirrors, filters, etc). The camera may capture color images, greyscale image, and the like.
The imaging device 114 may be a camera used to capture visual images around the device. Any other type of sensor may be used, such as an infra-red sensor that may be used to capture thermal images around the device. The imaging sensor may collect information anywhere along the electromagnetic spectrum, and may generate corresponding images accordingly.
In some embodiments, the imaging device may be capable of operation at a fairly high resolution. The imaging sensor may have a resolution of greater than or equal to about 100 μm, 50 μm, 10 μm, 5 μm, 2 μm, 1 μm, 0.5 μm, 0.1 μm, 0.05 μm, 0.01 μm, 0.005 μm, 0.001 μm, 0.0005 μm, or 0.0001 μm. The image sensor may be capable of collecting 4K or higher images.
The imaging device may capture an image frame or a sequence of image frames at a specific image resolution. In some embodiments, the image frame resolution may be defined by the number of pixels in a frame. In some embodiments, the image resolution may be greater than or equal to about 352×420 pixels, 480×320 pixels, 720×480 pixels, 1280×720 pixels, 1440×1080 pixels, 1920×1080 pixels, 2048×1080 pixels, 3840×2160 pixels, 4096×2160 pixels, 7680×4320 pixels, or 15360×8640 pixels.
The imaging device 114 may capture a sequence of image frames at a specific capture rate. In some embodiments, the sequence of images may be captured at a rate less than or equal to about one image every 0.0001 seconds, 0.0002 seconds, 0.0005 seconds, 0.001 seconds, 0.002 seconds, 0.005 seconds, 0.01 seconds, 0.02 seconds, 0.05 seconds. 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second, 2 seconds, 5 seconds, or 10 seconds. In some embodiments, the capture rate may change depending on user input and/or external conditions (e.g. illumination brightness).
A state of the imaging device 114 may include information relating to one or more operational parameters of the camera or an imaging sensor of the imaging device at the time an image is captured or a barcode is scanned. For instance, a state of the camera may include the exposure time, ISO speed rating, focal length, use of flash, light balancing, resolution, or any other information that may be varied with time, environment conditions such as lightening, orientation or position of the camera. In some embodiments, one or more additional sensors may be provided to supply additional information related to the state of the imaging device.
The user device may have one or more sensors 116 on-board the device to provide instantaneous positional and attitude information of the imaging device. In some embodiments, the positional and attitude information may be provided by sensors such as a location sensor (e.g., Global Positioning System (GPS)), inertial sensors (e.g., accelerometers, gyroscopes, inertial measurement units (IMUs)), altitude sensors, attitude sensors (e.g., compasses) pressure sensors (e.g., barometers), and/or field sensors (e.g., magnetometers, electromagnetic sensors) and the like.
The one or more sensors 116 may include, but are not limited to, location sensors (e.g., global positioning system (GPS) sensors, mobile device transmitters enabling location triangulation), vision sensors (e.g., imaging devices capable of detecting visible, infrared, or ultraviolet light, such as cameras), proximity sensors (e.g., ultrasonic sensors, lidar, time-of-flight cameras), inertial sensors (e.g., accelerometers, gyroscopes, inertial measurement units (IMUs)), altitude sensors, pressure sensors (e.g., barometers), audio sensors (e.g., microphones), time sensors (e.g., clocks), temperature sensors, sensors capable of detecting memory usage and/or processor usage, or field sensors (e.g., magnetometers, electromagnetic sensors). Any suitable number and combination of sensors can be used, such as one, two, three, four, five, or more sensors. Optionally, the data can be received from sensors of different types (e.g., two, three, four, five, or more types). Sensors of different types may measure different types of signals or information (e.g., position, orientation, velocity, acceleration, proximity, pressure, etc.) and/or utilize different types of measurement techniques to obtain data. For instance, the sensors may include any suitable combination of active sensors (e.g., sensors that generate and measure energy from their own source) and passive sensors (e.g., sensors that detect available energy).
Any number of sensors may be provided on-board the user device. The sensors may include different types of sensors, or the same types of sensors. The sensors and/or any other components described herein may be enclosed within a housing of the device, embedded in the housing of the device, or on an external portion of the housing of the device. The housing may or may not form a fluid-tight (e.g., water-tight or airtight) seal separating the interior of the housing and/or the exterior of the housing.
The one or more sensors 116 may collect information continuously in real-time, or may be collecting information on a periodic basis. In some embodiments, the sensors may collect information at regular time intervals, or at irregular time intervals. The sensors may collect information at a high frequency (e.g., every minute or more frequently, every 10 seconds or more frequently, every second or more frequently, every 0.5 seconds or more frequently, every 0.1 seconds or more frequently, every 0.05 seconds or more frequently, every 0.01 seconds or more frequently, every 0.005 seconds or more frequently, every 0.001 seconds or more frequently, every 0.0005 seconds or more frequently, or every 0.0001 seconds or more frequently). The sensors may collect information according to a regular or irregular schedule.
The sensors may collect information in response to a detected event. In some embodiments, the sensors may collect information when a transaction that requires user identification/authentication is being initiated, completed, or at any state in-between. The sensors may collect information when the user is being authenticated. For instance, the sensors may collect information when the user is logging in. The sensors may collect information when the imaging device is activated for capturing an image. The sensors may collect information when the user is trying to access a user account. The sensors may collect information when the user makes a request to complete a transaction. The sensors may collect information when the user requests to receive or send money.
The sensors may collect information at a single point in time or multiple points in time. In some embodiments, the sensors may collect information over a time interval (e.g., on a periodic basis, continuously, etc.). In some embodiments, the time interval may be less than or equal to 10 seconds, 5 seconds, 3 seconds, 2 seconds, 1 second, 0.5 seconds, 0.3 seconds, 0.1 seconds, 0.05 seconds, 0.01 seconds, 0.005 seconds, 0.001 seconds, 0.0005 seconds, or 0.0001 seconds. Alternatively, the time interval may be greater than or equal to any of the values described herein, or may fall within a range between any two of the values described herein.
A state of the imaging device may include positional information relating to the imaging device. For instance, positional information may include spatial location of the imaging device (e.g., geo-location). In some embodiments, positional information may include a latitude, longitude, and/or altitude of the imaging device. In some embodiments, the positional information may be expressed as coordinates. The positional information may include an orientation of the imaging device. For instance, the positional information may include an orientation of the device with respect to one, two, or three axes (e.g., a yaw axis, pitch axis, and/or roll axis). The positional information may be an attitude of the imaging device. The positional information may be determined relative to an inertial reference frame (e.g., environment, Earth, gravity), and/or a local reference frame.
The positional information may include movement information of the imaging device. For instance, the positional information may include linear speed of the device or linear acceleration of the device relative to one, two, or three axes. The positional information may include angular velocity or angular acceleration of the device about one, two, or three axes. The positional information may be collected with aid of one or more inertial sensors, such as accelerometers, gyroscopes, and/or magnetometers.
A state of the imaging device may also include environmental information collected by the user device at the time an image is captured. The environmental information may include audio information collected by a microphone of the device. The environmental information may include information collected by a motion detector, an ultrasonic sensor, lidar, temperature sensor, pressure sensor, or any other type of sensor that may collect environmental information about the device. The environmental information may include detecting the touch or hand position of a user holding the device, and collecting which portions of the device or touched or held by the user.
The imaging sensor as described herein may be used to capture image data. The image data generated by an imaging device can include one or more images, which may be static images (e.g., photographs), dynamic images (e.g., video), or suitable combinations thereof. The image data can be polychromatic (e.g., RGB, CMYK, HSV) or monochromatic (e.g., grayscale, black-and-white, sepia). The image data can be any image format (e.g. EPS or SVG vector graphs, PNG, GIF, or JPEG raster graphics format, etc). The image data used for authentication may or may not be stored in a database.
A state of the captured image may include the information of the raw image (e.g., metadata) or data involved in image processing. In some cases, the image data may be processed in order to extract information encoded in a region of interest. The region of interest in the captured image may have a deformed shape, variable intensity, resolution, size because of being captured from an imaging device maneuvered by a user. For instance, a scanned image that contains a physical representation such as a barcode may be analyzed or processed. The barcode shape may be normalized using various algorithms or methods. For example, the barcode shape may firstly be recognized by edge and/or corner detection, normalized by inverse perspective transformation, transformed to binary image data and decoded. A large amount of parameters may be generated during image processing operations (e.g., de-skewness, crop, normalization, enhancement, filtering, etc). In some cases, image processing may be applied in order to extract identity information encoded in the barcode. In another instance, the large amount of parameters may be obtained from an analysis of the image characteristics or properties (e.g., intensity, width, height, resolution, etc). Details about the nonce data related to image or image processing are described later herein.
The information related to the state of the imaging device and the image data may be stored as nonce data. The nonce data may contain information generated from one or more sensors as well as one or more processors.
In some embodiments, the nonce data may comprise information generated from sensor data. In some embodiments, information from a single sensor may be stored as nonce data. Alternatively, information from multiple sensors may be stored as nonce data. The nonce data may include sensor information collected at a single point in time, or over a time interval. The nonce data may include raw sensor information, or may include sensor information that has been processed. The nonce data may be generated based on the sensor information. In some embodiments, the nonce data may be derived from, or a hash of the sensor information. The nonce data may be derived from at least some sensor information that should not be repeated realistically. For instance, the position (e.g., orientation) of the imaging device is unlikely to repeat exactly at a high level of specificity. The nonce data should not be repeated realistically. The nonce data would realistically only occur at a single time. The nonce data may represent a singularity value that can very likely only be generated or used once. Thus, any repetition of nonce data may be a signal that a replay attack may be occurring.
The nonce data may be generated at the same frequency at which sensor data is collected. Alternatively, the nonce data may be generated less frequently than the sensor data is collected. In one example, the sensor data may collect information continuously or at a high frequency, while the nonce data may be generated and/or stored in response to a detected event. In some embodiments, all of the collected sensor data may be used to generate nonce data. Alternatively, a portion of the collected sensor data may be used to generate the nonce data.
In some embodiments, the nonce data may further comprise data generated by one or more processors related to analyzing and/or processing the image data. The one or more processors may be on-board the user device. The one or more processors may be on-bard the imaging device such as a microprocessor of the image capturing device. In some embodiments, the one or more processors may be configured to perform pre-processing of captured image data and output the image data along with metadata to other processors. In some embodiments, the one or more processors may be configured to process the captured image data, such as perform pattern recognition to extract identity information from a visual token contained in the image data. Accordingly, various parameters and characteristics of the visual token image may be generated during the image processing operations and/or analysis. The parameters may be obtained during pre-processing operations such as auto-adjustment of the raw image by the image capturing device (e.g., balance correction, gamma correction, de-mosaicing, de-speckle, etc.). The parameters may be obtained during image processing operations in order to recognize a physical token and/or decode the token, such as image segmentation, edge detection, corner detection, pattern detection, measure image skew angle and rotation, measure pixel content and histograms, image scaling, smoothing, morphological filters and the like. The operations may be applied to the whole image or the recognized region of interest.
The nonce data may include the data related to a state of an imaging device and a state of captured image data. The data may be collected at the time an image of a visual token is captured, processed and analyzed for authentication. In some embodiments, all of the collected data may be used to generate nonce data. Alternatively, not all of the collected data may be used to generate the nonce data.
The nonce data may relate to device component data. For instance, the nonce data may include data about an operational stage of a device or component of a device. Local data about the device or any component of the device may be collected. Local data about the device may refer to a state of the device or device component. In some instances, local data may refer to a device or component state without regard to the environmental conditions around the device. Examples of components of the device may include a display, memory, processors, power supply, communication unit, sensors, housing, or any other component of the device. The local state of the device may include positional information, such as orientation of the device. The local state of the device may include operational data that describes how a component is operating or the conditions under which it is operating, without regard to location. The local data may be collected at a single point in time, multiple successive points in time, or over a time interval.
In one example, the local data about the device may refer to a state of the display of the device. For instance, the local data may include whether the display is turned on or off. The local data may include an image shown on the display. For example, the local data may include a screenshot of an image on the display, or may include data about the image shown on the display. The local data may include screenshots of the display over a period of time (e.g., dynamic display). An analysis of light distribution and/or other data pertaining to the image may be collected. A determination of power consumed by the display at a moment in time may be collected. In some embodiments, it may be determined that a change in the state of the display may reduce the likelihood of a replay attack. If a change in the state of display is included as part of the nonce data or the nonce data is derived based on the state of display, the change in the state of the display may be reflected in the change of the nonce data. Similar applications to the nonce data may be applied for any other type of data collected about the device, including other local and/or environmental data as described elsewhere herein.
The local data about the device may refer to a state of a power supply of the device. For instance, the battery state of charge (e.g., remaining percentage of charge, remaining length of time of battery life, etc.) may be assessed. The battery state of charge may be determined to a high degree of precision and/or accuracy. For instance, a remaining percentage of charge left may be determined to within about 1%, 0.5%, 0.1%, 0.05%, 0.01%, 0.005%, 0.001%, 0.0001%, or 0.00001%. The local data may also include information about a battery depletion rate at a given moment in time. The battery depletion rate may also be determined to a high degree of accuracy and/or precision, such as any of the percentage values described per second, per millisecond, or any other unit of time. The local data may also include a temperature of the battery or any other measurement pertaining to the battery.
The local data may include temperature of any component of the device, or the device as a whole. The temperature may be determined to a high degree of accuracy and/or precision. For instance, the temperature may be determined to within 2, 1, 0.5, 0.1, 0.05, 0.01, 0.005, 0.001, 0.0005, 0.0001, 0.00005, or 0.00001 degrees C. The temperature of multiple components of the device may be determined. A temperature profile may be generated for multiple components of the device. It may be extremely unlikely that the exact same temperature for a component, or combination of multiple components may be collected during different authentication events. Temperature data may also include a rate of change of temperature at a moment in time for a single component or multiple components. A likelihood of a replay attack may be increased if the temperature and/or temperature profile is identical, and/or the likelihood of a replay may be decreased if the temperature and/or temperature profile is different.
Additionally, local data of the device may include information about usage of a communication unit of the device. For instance, the amount of data being transmitted out and/or received in may be collected. The information pertaining to the data content itself being transmitted out and/or received in may be collected. In another example, information about an identity or type of external device or network communicating with the communication unit may be collected. Such information about the communication unit may be taken at a single point in time or over a time interval. If the communication unit data is identical, there may be increased likelihood of a replay attack, or if the data is different, there may be a decreased likelihood of a replay attack.
Further local data of the device may include information about one or more memory storage units. For instance, the amount of memory stored and/or remaining may be determined. The amount of memory stored and/or remaining may be determined on the order of bytes, or may be determined as a percentage. The distribution of stored memory may also be determined. For instance, a level of fragmentation or how the fragmentation of data is stored or distributed may be determined. It may be unlikely for exact duplicates of amount of data storage or distribution of data storage to be repeated between authentication events. The content of the data stored in the memory storage units may or may not be considered in determining the local data. If memory storage related data is identical, there may be an increased likelihood of a replay attack, or if the data is different, there may be decreased likelihood of a replay attack.
In some embodiments, the local data of the device may include information about one or more processors of the device. For instance, the level of usage of the processors (e.g., as a numerical value, or as a percentage) may be determined. In some embodiments, data about software or applications running on the devices may be determined. The usage of processors relating to each of the software or applications may be determined. A processor usage profile may be created based on the usage of the various software, applications, and/or processes. Such data may be collected at a single point in time or over a time interval. If processor related data is identical, there may be an increased likelihood of a replay attack, or if the data is different, there may be decreased likelihood of a replay attack.
Collection of local data of the device may include data relating to one or more sensors of the device. Data collected by the sensors themselves may be used for local data. In some instances, operational parameters of the sensors (e.g., whether they are on or off, whether they are collecting data, frequency of data collection, direction of data collection, sensitivity of data collection, amount of data being collected, the data collected itself) may be assessed. In one example, if the sensor is a camera, the operational parameters of the camera, such as shooting mode, zoom information, exposure, focus, direction, light balancing, resolution, or any other information about the camera may be used as local data. Data relating to a single sensor or multiple sensors may be considered. For instance, a combination of sensors may be considered in determining a sensor usage profile. The data relating to the sensor may be collected at a single point in time or over a time interval. If sensor related data is identical, there may be an increased likelihood of a replay attack, or if the data is different, there may be decreased likelihood of a replay attack.
Nonce data may include any type of environmental data about the device that may be collected. Environmental data about the device may refer to data pertaining to the environment outside the device. In some instances, the environmental data may include collection of data of external conditions outside the device. Such data may be visual, thermal, audio, include data anywhere along the electromagnetic spectrum, or include acoustic information. The environmental data may be collected at a single point in time, multiple successive points in time, or over a time interval.
In one example, the environmental data about the device may refer to data collected by an image sensor of the device. One or more image sensors of the device may be used to collect an image of an environment outside the device. The image collected by the image sensor may include an image of one or more landmark features around a device and/or an image of the user of the device, or any combination thereof. The environmental data may include the image or images captured by one or more image sensors, or may include data about the image(s) captured by the one or more image sensors. The environmental data may include snapshots collected over a period of time (e.g., dynamic display). An analysis of light distribution and/or other data pertaining to the image(s) may be collected. For example, brightness distribution, color distribution, saturation, hue, or other data relating to the images may be collected and/or analyzed. Such data may be collected and/or reviewed on a pixel by pixel basis, or on a pixel group by pixel group (e.g., pixel row, pixel height) basis. In some embodiments, it may be determined that a change in the images captured may reduce the likelihood of a replay attack. Completely identical image data may be extremely unlikely, and may indicate a higher likelihood of a replay attack. If image data is included as part of the nonce data or the nonce data is derived based on the image data, a change in the image data may be reflected in the change of the nonce data. Similarly, identical image data may be reflected in no change of the nonce data, if there are no other nonce factors that may be changing. Similar applications to the nonce data may be applied for any other type of data collected about the device, including other local and/or environmental data as described elsewhere herein.
The image sensor may be a camera used to capture visual images around the device. Any other type of sensor may be used, such as an infra-red sensor that may be used to capture thermal images around the device. The image sensor may collect information anywhere along the electromagnetic spectrum, and may generate corresponding images accordingly.
In some embodiments, the image sensor may be capable of operation at a fairly high resolution. The image sensor may have a resolution of greater than or equal to about 100 μm, 50 μm, 10 μm, 5 μm, 2 μm, 1 μm, 0.5 μm, 0.1 μm, 0.05 μm, 0.01 μm, 0.005 μm, 0.001 μm, 0.0005 μm, or 0.0001 μm. The image sensor may be capable of collecting 4K or higher images.
In some embodiments, the sensor used to collect environmental data may include lidar, sonar, radar, ultrasonic sensors, motion sensors, or any other sensor that may generate a signal that may be reflected back to the sensor. Such sensors may be used to collect information about the environment, such as the presence and/or location of objects within the environment.
Another example of environmental data may relate to one or more audio sensors that may be used to collect environmental information 450. The audio information may include sounds captured from the environment. This may include ambient noise, and/or noise generated by the device itself. The audio data may include an audio snapshot collected at a single point in time, or may include an audio clip collected over a period of time. The period of time may be less than or equal to about 10 seconds, 5 seconds, 3 seconds, 2 seconds, 1 second, 0.5 seconds, 0.1 seconds, 0.05 seconds, 0.01 seconds, 0.005 seconds, 0.001 seconds, 0.0005 seconds, 0.0001 seconds, 0.00005 seconds, 0.00001 seconds, 0.000005 seconds, or 0.000001 seconds. Alternatively, the period of time may be greater than or equal to any of the values described, or may fall within a range between any two of the values described.
An analysis of audio characteristics of the audio data may be collected or determined. For instance a fast Fourier transform (FFT) analysis or similar type of analysis may be performed on the audio data. In some embodiments, it may be determined that a change in the audio captured may reduce the likelihood of a replay attack. The raw audio data and/or an analysis of the raw audio data may be provided as the environmental data. An audio fingerprint may thus be generated. An audio fingerprint may be expected to be unique to a particular time at which it is collected. Completely identical audio data may be extremely unlikely, and may indicate a higher likelihood of a replay attack. If audio data is included as part of the nonce data or the nonce data is derived based on the audio data, a change in the audio data may be reflected in the change of the nonce data. Similarly, identical audio data may be reflected in no change of the nonce data, if there are no other nonce factors that may be changing. Similar applications to the nonce data may be applied for any other type of data collected about the device, including other local and/or environmental data as described elsewhere herein.
In some embodiments, one or more audio sensors may be used to collect information. An audio sensor may be a microphone. The microphone may collect information from a wide range of directions, or may be a directional or parabolic microphone which has a limited range of directions. The microphone may be a condenser microphone, dynamic microphone, ribbon microphone, carbon microphone, piezoelectric microphone, fiber optic microphone, laser microphone, liquid microphone, MEMs microphone, or any other type of microphone. The audio sensors may be capable of collecting audio data with a high degree of sensitivity. In some embodiments, the audio sensors can differentiate audio data on the order of less than or equal to 10 dB, 5 dB, 3 dB, 2 dB, 1 dB, 0.5 dB, 0.1 dB, 0.05 dB, 0.01 dB, 0.005 dB, 0.001 dB, 0.0005 dB, 0.0001 dB, 0.00005 dB, or 0.00001 dB. As previously described, it may be extremely unlikely that audio data will repeat exactly, particularly when collected with a high-sensitivity microphone. A 100% match in audio allegedly collected for different transactions may increase the likelihood that a replay attack has occurred.
The nonce data may relate to a checksum function. For instance, any type of data input may be used to derive a checksum value, via a checksum function. The checksum value may be a nonce data. The checksum value may be significantly different, even if an input value just differs slightly. Any type of checksum function known or later developed may be used. For instance, a checksum may utilize a parity check, such as a longitudinal parity check. In some instances, a modular sum may be used. Some checksums may be position-dependent, such as Fletcher's checksum, Adler-32, or cyclic redundancy checks (CRCs). In some instances, the checksum values may be used as nonce data. The checksum function may be an existing checksum function and/or utilized by the system for the purpose of detecting errors that may have been introduced during its transmission or storage. The checksum value may be further utilized for generating nonce data in addition to the aforementioned purpose. The checksum value may be a small-sized datum derived from a block of digital data (e.g., image data) such that memory or data transmission bandwidth required for the authentication may be reduced.
For example, as illustrated in
Similarly, as illustrated in
Furthermore,
In some embodiments, the checksum value may be a nonce factor. The checksum value may form a nonce factor that may make up a part of the nonce data or may be used to derive the nonce data.
In some instances, an input to a checksum may be a nonce factor or nonce data. A nonce factor or nonce value may be determined from one or more data sources, as described elsewhere herein. The nonce factor or nonce data may further undergo a checksum function. The checksum values may be compared to determine to determine the likelihood of a replay attack.
The checksum values may be generated on-board the device. For instance, the checksum values may be generated using one or more processors of the device. The checksum values may be stored in one or more memory storage units of the device. The checksum values may be transmitted with aid of a communication unit to an external device or network. Alternatively, the checksum values may be generated off-board the device. Data from a data source, such as sensors or processors, may or may not be stored in a memory before being transmitted. The data from the data sources may be used at an external device or network to generate checksum data.
The nonce data may be generated on-board the device. For instance, the nonce data may be generated using one or more processors of the device. The nonce data may be stored in one or more memory storage units of the device. The nonce data may be transmitted with aid of the communication unit, to an external device or network. Alternatively, the nonce data may be generated off-board the device. Data from one or more sensors and one or more processors on-board the user device may be transmitted, with aid of the communication unit, to an external device or network. The data from the sensors and processors may or may not be stored in memory before being transmitted. The data from the sensors and processors may be used at an external device or network to generate nonce data.
The checksum data may optionally be derived at a same device that generates nonce data, or may be derived at a different device from a device that generates nonce data. For instance, both a checksum and nonce data may be derived locally on a device. Alternatively, a checksum may be generated on a device while a nonce data is derived on an external device or network. In another example, nonce data may be generated on a device while a checksum value is derived on an external device or network. In some instances, both a checksum value and nonce data may be generated off-board the device, at an external device or network.
Identification data may contain information used to authenticate or verify identity of a user. The identification data may contain personal information such as name, date of birth, address, nationality and the like that describe identity of a user. The identification data may contain product information such as instructions, purchase options, service provider information and the like that describe identity of a product or a service. The identification data may contain any type of information that can uniquely identify a user, a service, a transaction and the like. The identification data may contain information pertaining to the same user, same service, or same transaction. In some embodiments, the information or identifier may be cypher text that is previously encrypted in the identification data. A secret key or password may be required to decrypt the information. In other embodiments, the identification data may be plain text that is unencrypted data.
In some embodiments, the identification data may be encoded in a physical token 207. The physical token may be a visual graphical element that can be scanned by suitable device (e.g. barcode readers, optical scanners, cameras) or can be machine-readable. The visual graphical element can be any format, such as a bar code, text, a picture, a sequence thereof, or the like that can be captured and/or displayed on a device. The visual graphical element may be two-dimensional barcode such as PDF417, Aztec, MaxiCode, and QR code, etc. The visual graphical element may be one-dimensional barcode such as Interleaved 2/5, Industrial 2/5, Code 39, Code 39 Extended, Codabar, Code 11, Code 128, Code 128 Extended, EAN/UCC 128, UPC-E, UPC-A, EAN-8, EAN-13, Code 93, Code 93 Extended, DataBar Omnidirectional (RSS-14), DataBar Truncated (RSS-14 Truncated), DataBar Limited (RSS Limited), DataBar Stacked, DataBar Expanded, DataBar Expanded Stacked and the like. The barcode can encode various types of information in any type of suitable format, such as binary, alphanumeric, or ASCII, and the code can be based on any standards. The visual graphical element may have various storage capacities that can encode certain amount of data, and variable physical size. In some embodiments, the barcodes may conform to known standards that can be read by standard barcode readers. In other embodiments, the barcode may be proprietary such that it can be read only by an authenticated application provided by an authentication system and authenticated the application may run on a user device. In some instances, only the authentication system or the authentication application can encrypt/decrypt the barcode.
In some embodiments, the physical token 207 may be a visual graphical code that can be displayed on a display device. The display device may be a computer (e.g., laptop computer, desktop computer), a mobile device (e.g., smartphone, tablet, pager, personal digital assistant (PDA)), a vending machine or the like requiring authentication or verification of the user to conduct a session or transaction utilizing the display device to complete the transaction running on a server (i.e. service provider). The display device may optionally be portable. The display device may be handheld.
A user device 203 may comprise an imaging device 200 that is used to capture image data of the physical token 207. The imaging device can be the same imaging device as described in
In other embodiments, the entire physical token may be required for authentication. In other embodiments, a portion of the barcode region may be enough for authentication. For example, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% of the physical token may be captured in the image data for authentication and generating nonce data.
In some embodiments, a photo of the barcode 207 may be acquired and stored on the memory unit of the user device 203 for further image processing and decoding. Alternatively, the imaging device 200 may scan the barcode in real time without capturing a photo of the barcode. In this embodiment, the imaging device 200 may constantly acquire images of the barcode 207 and store them in memory. Each of these images is subsequently processed until the barcode is correctly decoded. Once barcode 207 has been decoded, the imaging device 200 may stop acquiring images of barcode.
In some cases, the captured image data may be processed to extract identification information for authentication. The physical token 207 as shown in
In some embodiments, the encoded identification information may be previously encrypted and an encryption key may be required to decrypt the cypher text. For instance, a PDF417 code on a driver license can be decoded by a standard reader, however the decoded identification information may be previously encrypted by the issuer, such that an encryption key and encryption algorithm may be required in order to decrypt the identification data. In some cases, only an authority entity or a specific service provider may possess the encryption key and method. In other embodiments, the user device may possess the encryption key and method. The key and method may be standard. For example, data can be encrypted using a 1024 bit polymorphic cipher, or, depending on the export controls, an AES 256 bit encryption method. Furthermore, encryption can be performed using remote key (seeds) or local keys (seeds). Alternative encryption methods can be used as would be understood by those skilled in the art, for example, SHA256, AES, Blowfish, RSA and the like.
In some embodiments, the physical token may be processed and decoded to obtain identification data. The physical token may be read from an image captured at any orientation, size, lighting condition, and the like that may cause an image blurred, noisy, skewed, scaled, distorted, etc. Various characteristics of the image data containing the physical token may be analyzed during the process of image processing. The characteristics of the captured image data and the imaging device may be used to generate nonce data.
In some embodiments, a selfie image or video-clip may be taken for authenticating a user.
The user device 203 and the imaging device 210 may be the same as the devices as described in
In some embodiments, a photo of the user, particularly a facial portion may be acquired and stored on the memory unit of the user device 203 for further image processing and facial recognition. Alternatively or additionally, a photo of the user may be stored in a database accessed by the server in communication with the user device. Image processing and facial recognition may be performed by the user device and/or the server. In some cases, the imaging device 210 may scan the user in real time without capturing a photo of the user. In one embodiment, the imaging device 210 may constantly acquire images of the user and store them in memory. Each of these images is subsequently processed until the facial biometrics of the user is detected. Once face of the user has been detected, the imaging device 210 may stop acquiring images of user. In some cases, a user may be prompted to take a selfie image. For example, a user may be asked for permission to perform facial scanning. Upon receiving user's instruction indicating permission to take a selfie-image or facial scanning, the camera may be activated automatically to perform facial scanning. Alternatively, user input may not be requested for performing facial scanning or taking a selfie-image. In some cases, a user may be notified if the selfie-image is not valid for further processing. For example, a user may be notified regarding the specific reason why the selfie-image is invalid (e.g., image quality is not good enough to detect a face, authenticated user is not recognized, etc). Alternatively, a user may not be notified of the validity of the selfie-image.
In some cases, the captured image data may be processed to extract facial traits/features/landmarks of the user for authentication. The image may be static image or a series of images (“live image”). A selfie image may comprise a still image, a video clip, a live image, or any other type of image. A selfie image may include at least a portion of the user within the image. For instance, at least a portion of the user's face, head, silhouette, body, appendage, may be viewable within the image. A selfie image may include at least a portion of the user's face. A selfie image may optionally include an entirety of the user's face, or at least a sufficient portion of the user's face to be useful for facial recognition. In some instances a minimum set of data points on the face, or particular facial features may be included in the selfie image. In some cases, information related to image processing for extracting the facial traits/features/landmarks may be used for generating nonce data that can be used for detecting a replay attack.
In some embodiments, the local data about an imaging device may be obtained from metadata of an image. The metadata may be data automatically attached to a photo. The metadata may contain variable data including technical information about an image and its capture method, such as exposure settings, capture time, GPS location information and camera model, etc. In some embodiments, the metadata is generated by a microprocessor on-board the imaging device.
The local data of an imaging device may include operational parameters. In some embodiments, the operational parameters may be event-based parameters. For instance, the exposure time may be varied based on the local illuminating light conditions. Focal length of the imaging device may be automatically varied based on the distance between the physical token and the imaging device. The ISO, shutter, aperture speed may be automatically adjusted according to pre-determined algorithms in order to accommodate variable environment and imaged object.
One or more processors on-board the imaging device may be provided that may aid in collecting operational parameters about the imaging device. For instance, an imaging device may have a first set of operational parameters at a first time capturing a physical token, and may have a different set of operational parameters at a second time capturing the same physical token. As previously described, the operational parameters may be automatically adjusted according to a pre-determined algorithm to accommodate the highly variable environment.
The local data of an imaging device may include positional information. In some embodiments, positional information may include a latitude, longitude, and/or altitude of the device. In some embodiments, the positional information may be expressed as coordinates. The positional information may include an orientation of the device. For instance, the positional information may include an orientation of the device with respect to one, two, or three axes (e.g., a yaw axis, pitch axis, and/or roll axis). The positional information may be an attitude of the device. The positional information may be determined relative to an inertial reference frame (e.g., environment, Earth, gravity), and/or a local reference frame.
One or more sensors may be provided that may aid in collecting positional information about the imaging device. For instance, the devices may be at different orientations over time. For instance, with respect to a static reference frame, the devices may have different orientation. The angles between the axes may change over time. As described above, the position information (e.g., angle information, spatial location information) may be determined to a high degree of accuracy and/or precision. An orientation of the device may be assessed over a single axis, two axes, or three axes. A spatial location of the device may be assessed along a single axis, two axes, or three axes.
The local data of an imaging device may also include timestamps such as the time an image is captured, the time an image is pre-processed by the processors on-board the imaging device, the time an image is stored and/or output.
Authentication events may occur at different points in time. A user may provide authentication and/or participate in a transaction at different points in time. While it is possible that the same imaging device may be used to capture the same physical token by the same user, it is highly unlikely that they will have a completely identical local data (e.g., operational parameters, positions, attitudes and/or timestamps) of the imaging device. At least some minor variation may be expected in the local data between authentication events. Thus, if the local data of the imaging device taken at different authentication events are completely identical, it may be likely that a replay attack is occurring. For instance, a fraudster may have previously recorded an authentication event (e.g., previous transaction, user authentication, account access), including the local data of the imaging device, and is replaying the previous authentication event. In one example, during a first authentication event, the local data of the imaging device may be read as shown in Part A. If during a second authentication event, the local data of the device is read to be exactly the same, this may be highly improbable and indicative of a replay attack. Particularly when the device is a mobile device or handheld device, the imaging device information is likely to change. Even if the device is resting on a surface during an authentication event, user interaction with the device may cause some imaging conditions (e.g., such as focus distance, line of sight) change. Even if the user does not directly touch the device, environmental conditions such as illumination may cause some parameters change (e.g., ISO speed, aperture speed, shutter speed, exposure time).
Part B illustrates examples of data may be collected from image processing and used as nonce data. The data collected may be related to a state of the image data. The data collected may be related to various characteristics of the image data. In some embodiments, the captured image data 301 may contain a region of interest 303. The region of interest may be a barcode region comprising patterns that encode identity information. The region of interest can be the same as described in
For instance, as shown in part B, a rotated barcode region 303 may be captured with respect to a scanning region 302. The angle between the image coordinate 305 and the barcode coordinate 307 (i.e., orientation of the barcode with respect to an image frame) may be varied every time a user takes an image. For example, the image data 301 captured in a first authentication event is shown in scenario B-1, the coordinate of the upper left corner of the barcode region may be detected as [x,y] 309. In a second authentication event, the same graphical code may be captured and the image data 311 may be shown as in scenario B-2. The coordinate of the upper left corner of the same graphical code may be [x′,y′] 313 that is different from the coordinate in the first authentication event.
Various characteristics or properties (e.g., skewness, rotation/orientation angle, width, height of the barcode region) of the image data may be different between authentication events. For instance, the distance between the imaging device and the target object may be translated into a large range of possible sizes (magnifications) that a barcode can have on a fixed size image sensor. In another instance, taking image of the barcode at an angle changes the apparent shape of the barcode to a viewer (skewness). A barcode with a rectangular shape B-1, when viewed straight-on, can look like a trapezoid (or irregular quadrilateral) B-2 when viewed from an angle. The location and addressing of image pixels for a barcode change dramatically when viewed from the side, or tilted.
The captured image data may be processed to decode authentication information. In some embodiments, data generated during image processing can be used as nonce data. Nonce data may be generated from various characteristics of the captured image data obtained from image processing. Various characteristics of the captured image data such as the coordinate of a corner of the detected barcode region, position of a gravity center of the captured image, size of the interested pattern, skewness, orientation thereof may be generated during image processing without additional calculation/operation. For instance, when the image data is processed to align the barcode region for analysis, the angle may be calculated and recorded. The coordinate (x,y) 309 of a corner of the barcode region with respect to the image coordinate may also be detected for pattern recognition. Other characteristics such as the height, width and histogram of the barcode region may also be analyzed during imaging processing and may be used as nonce data.
In other instances, the characteristics data may be generated from pre-processing. For example, the image data may be automatically corrected for white balance. The intensities of the component RGB colors may be adjusted in order to render certain colors correctly. Accordingly, during the process intensities are analyzed and can be used as nonce data.
Additionally, the characteristics data may be generated from the decoding process. For example, algorithms and methods may be performed to accommodate variations in brightness and contrast in the captured image data of barcode. This may be done through use of globally and locally adaptive image processing operations (e.g., thresholding, filtering, etc). In another example, pattern recognition techniques may be performed to recognize the barcode pattern. During this process, characteristics about a portion of the pattern with respect to the image coordinate may be collected and used as nonce data. For instance, the coordinate, or size of the first bar pattern recognized in the non-normalized image may be recorded and used as nonce data.
In some embodiments, when selfie image data is used for authentication, data related a state of the imaging device and/or characteristics data generated from the facial detection and/or facial recognition process may be used for generating nonce data. In some embodiments, the characteristic of the selfie image data may comprise at least one of the following: (i) one or more parameters produced during image processing, (ii) one or more properties of the raw image data, and (iii) one or more properties of the processed image data. The characteristics data can be generated during a face detection process where the captured facial image data is processed for identifying a face.
In some embodiments, the data may be about a state of the imaging device. In some cases, data about a state of the imaging device for taking a selfie-image can be similar to the data produced during scanning an ID document as described in
In some embodiments, the local data about an imaging device may be obtained from metadata of an image. The metadata may be data automatically attached to a photo. The metadata may contain variable data including technical information about an image and its capture method, such as exposure settings, capture time, GPS location information and camera model, etc. In some embodiments, the metadata is generated by a microprocessor on-board the imaging device.
The local data of an imaging device may include operational parameters. In some embodiments, the operational parameters may be event-based parameters. For instance, the exposure time may be varied based on the local illuminating light conditions. Focal length of the imaging device may be automatically varied based on the distance between the physical token and the imaging device. The ISO, shutter, aperture speed may be automatically adjusted according to pre-determined algorithms in order to accommodate variable environment and imaged object.
One or more processors on-board the imaging device may be provided that may aid in collecting operational parameters about the imaging device. For instance, an imaging device may have a first set of operational parameters at a first time capturing a selfie-image, and may have a different set of operational parameters at a second time capturing selfie-image of the same user. As previously described, the operational parameters may be automatically adjusted according to a pre-determined algorithm to accommodate the highly variable environment.
The local data of an imaging device may include positional information. In some embodiments, positional information may include a latitude, longitude, and/or altitude of the device. In some embodiments, the positional information may be expressed as coordinates. The positional information may include an orientation of the device. For instance, the positional information may include an orientation of the device with respect to one, two, or three axes (e.g., a yaw axis, pitch axis, and/or roll axis). The positional information may be an attitude of the device. The positional information may be determined relative to an inertial reference frame (e.g., environment, Earth, gravity), and/or a local reference frame.
One or more sensors may be provided that may aid in collecting positional information about the imaging device. For instance, the devices may be at different orientations over time. For instance, with respect to a static reference frame, the devices may have different orientation. The angles between the axes may change over time. As described above, the position information (e.g., angle information, spatial location information) may be determined to a high degree of accuracy and/or precision. An orientation of the device may be assessed over a single axis, two axes, or three axes. A spatial location of the device may be assessed along a single axis, two axes, or three axes.
The local data of an imaging device may also include timestamps such as the time an image is captured, the time an image is pre-processed by the processors on-board the imaging device, the time an image is stored and/or output.
Authentication events may occur at different points in time. A user may provide authentication and/or participate in a transaction at different points in time. While it is possible that the same imaging device may be used to capture a selfie-image by the same user, it is highly unlikely that they will have a completely identical local data (e.g., operational parameters, positions, attitudes and/or timestamps) of the imaging device. At least some minor variation may be expected in the local data between authentication events. Thus, if the local data of the imaging device taken at different authentication events are completely identical, it may be likely that a replay attack is occurring. For instance, a fraudster may have previously recorded an authentication event (e.g., previous transaction, user authentication, account access), including the local data of the imaging device, and is replaying the previous authentication event. In one example, during a first authentication event, the local data of the imaging device 340 may be read as shown in
One or more parameters may be obtained during pre-processing operations such as auto-adjustment of the raw image by the image capturing device (e.g., balance correction, gamma correction, de-mosaicing, de-speckle, and the like). Various image processing or computer vision techniques may be utilized for extracting faces from an image. The parameters may be obtained during image processing operations, such as image segmentation, edge detection, corner detection, pattern detection, measure image skew angle and rotation, measure pixel content and histograms, image scaling, smoothing, morphological filters and the like, in order to extract faces from the facial image. In another example, the image may be normalized which may include rotating, scaling, or otherwise modifying image to remove any remaining artifacts that arose from causes that may or may not relate to facial or liveness gestures. Such artifacts may include, for example, excessive rotational difference, excessive scale differences, and motion blur. Such parameters are highly unlikely to be identical in different image processing events. One or more properties of the raw image and processed image such as intensity, width, height, resolution and the like can also be used for generating nonce data,
For instance, as shown in
Information generated during face recognition process can also be used as nonce data. With the facial images already extracted, cropped, resized and usually converted to grayscale, various face recognition algorithms may be used for finding characteristics which best describe the image. Any suitable face recognition algorithm (e.g., scale invariant feature transform, fisherfaces, local binary patterns histograms, eigenfaces, speed up robust features, and the like) may be used to compare the input facial image with the facial image related to the user which is requiring the authentication. Similarly, one or more parameters produced during the face recognition process may be stored and used for generating nonce data. For example, when scale invariant feature transform is used to transform an image into large collection of feature vectors, the transformation parameters such as image translation, scaling, rotation, illumination change, local geometric distortion, and the like may be collected and used for generating nonce data.
Various characteristics data generated during image processing or about the raw image can be used as nonce data. The data may be collected every time a physical token or a selfie image is captured and processed to decode/extract the identity information. In some embodiments, data may be collected without image processing operations. Data may be generated by any analysis as described elsewhere herein without alternating the image data. As a physical token may be captured for an authentication event, the data generated from processing the image data of the physical token may be automatically collected and used as nonce data.
Data about a state of the imaging device and a state of the image data captured may be used as nonce data for an authentication event. The Authentication events may occur at different points in time. A user may provide authentication and/or participate in a transaction at different points in time. While it is possible that the same imaging device may be used to capture the same physical token by the same user, it is highly unlikely that they will have a completely identical data about the image and/or data generated from image processing (e.g., skew angle, rotation angle, histogram, intensity, etc). At least some minor variation may be expected in the data between authentication events. Thus, if the data from image processing or data of the raw image taken at different authentication events are completely identical, it may be likely that a replay attack is occurring. For instance, a fraudster may have previously recorded an authentication event (e.g., previous transaction, user authentication, account access), including the data of the state of the image, and is replaying the previous authentication event. Particularly when the device is a mobile device or handheld device, the image data information is likely to change.
Even if the device is resting on a surface during an authentication event, user interaction with the imaging device may cause some imaging conditions change such as focus distance, viewing angle, steadiness and the like. For instance, the distance between the imaging device and the target object may be translated into a large range of possible sizes (magnifications) that a barcode can have on a fixed size image sensor. In another instance, taking image of the barcode at an angle changes the apparent shape of the barcode to a viewer (skewness).
Even if the user does not directly touch the device, environmental conditions such as illumination may cause some variables change (e.g., noise, intensities, white balance, etc). For instance, the imaging device may rely solely on the ambient light for illumination during capturing image data. The highly variable ambient light may cause auto adjustment of various imaging device parameters. The highly variable ambient light may also result in shadows, shading across the length of a barcode, overexposure, underexposure, and similar characteristics change of the captured image data.
Thus, an authentication event, such as a user authentication process or transaction, may be assessed for likelihood of tampering or fraud. An identity of a user may be verified and/or a transaction may be authenticated when the information of the imaging device and image data does not provide an increased likelihood of fraud.
One or more nonce factors (e.g., Nonce Factor 1403, Nonce Factor 2405, Nonce Factor 3407, . . . ) may be used to form a set of nonce data 401. Nonce factors may include various types of data collected about a state of the imaging device and/or a state of the captured image data. Nonce factors may include various types data related to different characteristics of the imaging device and the captured image data. Nonce factors may include data from various sensors of the user device. Nonce factors may include various types of data collected about a state of the user device. The nonce factors may each be taken at a single point in time, multiple points in time, or over a time interval. Each of the nonce factors may be from different points in time, or may be from times that coincide and/or overlap. Each of the nonce factors may include data collected from different sensors or types of sensors of the device. Alternatively, two or more of the nonce factors may be collected from the same sensor or type of sensor. In some instances, all of the nonce factors may be collected from the same sensor or type of sensor.
In one example, nonce data 401 may be derived from a single nonce factor. In some embodiments, a single nonce factor may be information related to a group of characteristics. For instance, the single nonce factor may be processed data related to the barcode region with respect to an image frame. In this case, the single nonce factor may include a group of characteristics about the barcode region such as coordinate of a corner of the barcode region, rotation angle, center of gravity, width and height and the like. In another instance, the single nonce factor may be the raw positional data of the imaging device, thus the single nonce factor may include a group of characteristics such as attitude, latitude and the like. In another instance, the single nonce factor may be information related to operational parameters of the imaging sensor, such as ISO speed, exposure time, or any other type of data as described elsewhere herein. A single nonce factor may include any number of characteristics data. The nonce data may be the raw data read from sensors directly, or may be derived or processed based on the raw data. If information about the group of characteristics is identical between authentication events, then the nonce data may also be identical between authentication events.
As shown in Scenario A, nonce data may be derived from multiple nonce factors. For instance, a first nonce factor may include imaging device data and a second nonce factor may include image characteristic data. If the imaging device data and the image characteristic data are identical between authentication events, then the nonce data may also be identical between authentication events. If both the imaging device data and image characteristic data are different between authentication events, then the nonce data may be different between authentication events. If at least one of the imaging device data and the image characteristic data are different between authentication events, then the nonce data may likely be different between authentication events.
If at least one nonce factor of a plurality of nonce factors is different between authentication events, then the nonce data may reflect this difference, and may be different between authentication events. In some instances, if even a single nonce factor is different between authentication events, the nonce data may be different between the authentication events. For instance, each of the nonce factors may need to be a 100% match for the nonce data to be a 100% match between authentication events. This may be like particularly true when the nonce data is derived from the plurality of nonce factors. For instance, the nonce data may be generated based on an algorithm that considers the nonce factors. The nonce data may be a hash of the various nonce factors. The nonce data may include a value or string that may be derived based on the various nonce factors. In some instances, distinguishing information about each of the nonce factors may not be determined from the nonce data. For instance, the separate nonce factors may not be derivable or separated from the nonce data. Alternatively, distinguishing information about each of the nonce factors may be determined from the nonce data. For instance, the separate nonce factors may not be derivable or separated from the nonce data.
As shown in Scenario B, nonce data 411 may include a collection of multiple nonce factors. For instance, a first nonce factor may include imaging device data and a second nonce factor may include image characteristic data. If the imaging device data and the image characteristic data are identical between authentication events, then the nonce data may also be identical between authentication events. If both the imaging device data and image characteristic data are different between authentication events, then the nonce data may be different between authentication events. If at least one of the imaging device data and the image characteristic data are different between authentication events, then the nonce data may likely be different between authentication events. However, it may be possible to distinguish which sets of nonce factors are different between the authentication events and which are different.
If at least one nonce factor of a plurality of nonce factors is different between authentication events, then the nonce data may reflect this difference, and may be different between authentication events. In some instances, if even a single nonce factor is different between authentication events, the nonce data may be different between the authentication events. For instance, each of the nonce factors may need to be a 100% match for the nonce data to be a 100% match between authentication events. However, each of the nonce factors may be distinguishable so it can be determined which nonce factors are a match and which aren't. For instance, the nonce data may just be a collection of various nonce factors, or may append various nonce factors together. In some instances, distinguishing information about each of the nonce factors may be determined from the nonce data. For instance, the separate nonce factors may be derivable or separated from the nonce data. Alternatively, distinguishing information about each of the nonce factors may be determined from the nonce data. For instance, the separate nonce factors may not be derivable or separated from the nonce data.
Allowing the various nonce factors to be individually distinguishable may advantageously permit greater granularity into determination of whether a replay attack is occurring. For instance, different nonce factors may be weighted differently. For instance, nonce factors that are more likely to be different between authentication events may be weighted more than nonce factors that may be less likely to be different between authentication events. In one example, it may be extremely unlikely that data of the orientation and coordinate of the barcode region may be identical between authentication events. However, while it is likely there may be some variation in a state of the imaging device (e.g., exposure time, ISO speed, etc), it may be a factor where repetition may be more possible. In such an event, the data of the orientation and coordinate of the barcode region may be weighted more. The weighting may be considered during an assessment of a replay attack.
Looking at individual factors may also be useful when there may only be certain portions of the data that are likely to be recorded and/or replayed. For instance, in some embodiments, during a replay attack, all data pertaining to the physical token may be recorded and replayed. In such a scenario, any deviation in any of the factors may reduce the likelihood that a replay attack has occurred. In other embodiments, during a replay attack, only selected data pertaining to physical token may be recorded and replayed. For instance, only image characteristic data may be recorded and replayed while data about the state of the imaging device is not replayed. In such as a scenario, the 100% match of one of the factors (e.g., orientation, skewness of the barcode region) may be sufficient to provide a likelihood that a replay attack has occurred. In some embodiments, the systems and methods provided herein may take into account how nonce data is collected and/or being considered. If the nonce data is collected in a way that any replay would automatically put all the nonce factors together, then any deviation in the nonce data may be sufficient to indicate that a replay attack is unlikely. If the nonce data is collected in a way that the separate nonce factors could be separated and/or provided individually, then a 100% match of a nonce factor, particularly a nonce factor that is unlikely to repeat, may be enough to provide a high likelihood of a replay attack.
In determination of whether a replay attack has occurred, the various individual nonce factors may be considered (e.g., as shown in Scenario B). Alternatively, just the overall nonce data may be considered (e.g., as shown in Scenario A), and any degree of difference may reduce the likelihood of a replay attack. In some instances, the degree of difference may be considered in determining a likelihood of a replay attack. For instance, if all nonce factors are identical, there may be a high likelihood of a replay attack. If a single nonce factor is identical, and is one where repetition may be possible, then a moderate likelihood of replay attack may be provided, if no nonce factors are identical, then a low likelihood of replay attack may be provided.
The data may be the historic data collected from one or more authentication events, such as one or more transactions. The historic data may all be stored together in a single memory unit or may be distributed over multiple memory units. Data distributed over multiple memory units may or may not be simultaneously accessible or linked. The historic data may include data for a single user, or from multiple users. Data from multiple users may all be stored together or may be stored separately from one another. The historic data may include data collected from a single user device or from multiple user devices. Data from multiple user devices may all be stored together or may be stored separately from one another. In some instances, a single user device may be provided for a single user. Alternatively, multiple users may use a single user device, or a user may use multiple user devices when performing authentication events.
The stored data may include information such as a transaction ID 501, and/or transaction related data. Any discussion herein referring to a transaction may refer to any type of authentication event. For instance, any discussion herein of a transaction may also apply to any authentication of a user and/or access to a user account.
The transaction ID 501 may be a unique identifier that identifies a particular transaction, e.g., TID 1, TID 2, TID 3, TID 4, etc. As previously described, a transaction may be any time a user or user device performs an authentication event. The transaction as provided in the historic data may be stored regardless of whether an issue is flagged and/or any transfer of money, goods, or services is permitted to move forward to completion.
Any type of identification related data 503 may be stored, e.g., ID1, ID2, etc. The identification related data 503 may pertain to a user that is allegedly performing the transaction, information about the user's device, or any information that is specific to a transaction itself. The identification related data may include authentication data. For instance, a username, password or phrase, encrypted key, biometric data (e.g., fingerprint, optical scan, handprint, voiceprint), or any other type of information used to authenticate a user may be provided.
The identification data 503 may include the user's name, an identifier unique to the user, or any personal information about the user (e.g., user address, email, phone number, birthdate, birthplace, website, social security number, account number, gender, race, religion, educational information, health-related information, employment information, family information, marital status, dependents, or any other information related to the user). The personal information about the user may include financial information about the user. For instance, financial information about the user may include user payment card information (e.g., credit card, debit card, gift card, discount card, pre-paid card, etc.), user financial account information, routing numbers, balances, amount of debt, credit limits, past financial transactions, or any other type of information.
The identification data 503 may pertain to the physical token. For instance, a unique physical token such as barcode on an ID card may be provided. Identification information encoded in the barcode may be provided.
The identification data 503 may pertain to the user's device. For instance, a unique device identifier may be provided. Device fingerprint data (e.g., information about one or more characteristics of the device) may be provided. Information collected regarding the device's clock, device's IP address, applications running on the device, or any other information relating to the device may be collected.
Transaction-specific information may be incorporated. For instance, the nature of the transactions, the entities involved the transaction, the time of the transaction, the amount of any finances or exchanges of goods or services for the transaction, account numbers involved in the transaction, or any other information pertaining to the transaction may be provided.
In some embodiments, the identification data 503 may be provided by a physical token. The physical token can be the same token as described in
When an identification data is obtained, nonce data may be collected automatically. Nonce data may be collected when an image of the physical token is captured. Nonce data may be collected when an image of the physical token is processed or analyzed.
In some embodiments, nonce data 505 may be collected without requiring additional sensors or additional operations. For example, nonce data about information of a state of an imaging device may be collected from metadata of a captured static token without additional measurement or any operations. In another example, nonce data about a state of imaging data may be collected during image processing without any additional calculations or analysis.
When an authentication event occurs, nonce data 505 may be collected. The nonce data may include information about a state of an imaging device, a state of the captured static token, and/or a user device. The nonce data may be data that is extremely unlikely to repeat in a subsequent authentication event. The nonce data may include data or be derived from data collected at a single point in time, or from multiple points in time (e.g., at various time intervals or continuously within a time range). The nonce data may be stored as a single or multiple sets of data. The nonce data may be denoted as ND1, ND2, ND3, etc.
The historic data may be analyzed to identify a device and/or user, or authenticate a user. As illustrated, the first two transactions may not raise any red flags. For instance, for TID 1, TID 2, the identification data ID1 and ID2 may be different since they are for different transactions, and the nonce data ND1 and ND2 may also be different since both sets of data are changing.
In the third scenario, TID 3, a red flag may be raised. While a separate transaction is occurring, the same identification data ID 1 may indicate it's supposed to be the same identity (e.g., user) as TID1. The nonce data ND3 may show that some information is different between TID 1 and TID 3, so that it is unlikely the same transaction. It may indicate the same user perform different transactions. The fact that the identification information ID 1 is identical between TID 1 and TID 3 may be contradictory and increase a likelihood of fraud.
The fourth scenario shows a possibility of raising a red flag. For instance, TID 4 is shown to be a separate transaction, but has the same identification data ID 2 and a second transaction TID 2. The nonce data ND 2 may also be shown to be the same between TID2 and TID 4. Nonce data may be extremely unlikely to repeat or may never repeat. A repeat of the nonce data may indicate a replay attack. Thus, a high likelihood of a replay attack may be flagged for the fourth transaction TID 4.
While it may be possible for an imaging device to have a set of similar operation parameters (e.g., same exposure time) as an event, it is highly improbable that the information will be an exact match (e.g., a highly precise orientation and/or spatial location will be an exact match, or a highly precise coordinate, orientation, skewness, size of the static token with respect to an image frame), particularly when the data includes measurements that are determined to a high level of accuracy and/or precision, as previously described. Thus, there may be some chance of a replay attack in the fourth scenario.
In some scenarios, the nonce data 505 may include nonce information collected at multiple points in time during an authentication event. In one example, nonce information may be collected when a user initiates an imaging device, after capturing an image data, after a static token is decoded, or anywhere in between.
Such scenarios are provided by way of example only. Authentication events may include identifying a device and/or user. For instance, identification information may be used to identify a user and/or device. The identification information may be compared with one or more previously stored sets of identification information. In some embodiments, when the identification information matches a previously stored set of identification information, it may be determined to belong to the same user and/or device.
Optionally, nonce data may be considered when identifying a user and/or device. The nonce data may be analyzed on its own and/or may be compared with one or more previously stored sets of nonce data. If the nonce data identically matches a previously stored set of nonce data, it may be determined that there is a chance of a replay attack. This may suggest that the user is not who the user is purporting to be, or that the user is providing falsified information.
In some embodiments, the authentication parameter 600 may include identification data 603 and nonce data 601 as shown in scenario A. The identification data and nonce data may be collected during a same image capturing and analysis process. The identification data and nonce data may be collected using the same static token during a transaction. The identification data and nonce data may be collected by taking a selfie image of the user.
The identification information/data 603 may include any type of information as described elsewhere herein. For instance, the identification information may pertain to a user, a user device, a physical token possessed by a user, and/or may pertain to an authentication event (e.g., transaction). The identification may be a single piece of information (e.g. unique identifier) or may include multi-factored information (e.g., any combination of other types of information as described elsewhere herein). The identification data/information may be identity of the user recognized by facial biometrics. For instance, by comparing the extracted facial traits/landmarks to a prestored facial traits/landmarks of the user, identify of the user may be retrieved if a match is determined.
In some embodiments, the identification data 603 may be a static token. The static token may be provided by a physical token such as a barcode. The static token can be the same as described in
The identification data 603 sealed with the nonce data 601 may be the data decoded from a physical token. For example, the identification data may be decoded from an imagery of a graphical code captured by a user device. The captured image may or may not be decoded on the user device. In some cases, the captured image may be decoded on board a user device. For instance, a PDF417 code on a driver license may be scanned using a user device and the user identity information may be decoded by an application or software implemented on the user device.
The decoded identification data may or may be not previously encrypted. The user device may or may not have access to an encryption key or method to decrypt the data. In some embodiments, the decoded data may be directly sealed with nonce data as a parameter used for authentication. In some embodiments, when the data is previously encrypted, it may be decrypted by the application or software on board the user device then sealed with the nonce data. In other embodiments, the user device may not decrypt the data, so that the data may be transmitted to an external device such as an entity involved in the transaction having the encryption key or password for assessment and analysis. The identification data sealed with the nonce data may be of any format and any data type, such as image data, binary, alphanumeric, ASCII, etc.
In some embodiments, the identification data may or may not be provided by the same image data as used for collecting nonce data. For example, nonce data may be collected from a state of imaging device when it is capturing image data, the same image data may not provide identification information. In another example, nonce data may be collected from a state of captured image data that contains a static token such as a graphical code, the static token may or may not provide identification information. In a different example, nonce data may be collected from a state of captured image data that contains a static token, where the static token may provide at least a portion of the identification information.
The nonce data 601 may be any type of nonce data, such as nonce data derived from one or more nonce factors, or that may include the one or more nonce factors in an individually accessible format. The nonce data may or may not itself be sealed. For instance, the nonce data may or may not be broken up or divided or derivable into its original nonce factors. Sealed nonce data may not permit the original nonce factors and/or raw data used to derive the nonce data to be accessed. Non-sealed nonce data may allow the original nonce factors and/or raw data used to derive the nonce data to be accessed.
The nonce data 601 and identification information 603 may be associated with one another. The nonce data and identification information may be linked or connected to one another. The nonce data and identification information may be used to derive an authentication parameter. If the nonce data is identical between authentication events, the authentication parameter may be identical between authentication events. In some instances, the authentication parameter may be identical between authentication events if the nonce data is identical and the identification information is identical. If the nonce data is identical and the identification information is not identical, the authentication parameter may optionally not be identical.
The nonce data 601 may be tied to an authentication event, where a purported user took part in the authentication event. For a subsequent authentication event, if the nonce data is different and the identification information for this authentication event is different, this may not raise any red flags, because it is likely that the nonce data would be different for a different authentication event. If the nonce data is different, but the identification information is the same, this may raise a question. For instance, if it is referring to the identical information is referring to the same authentication event, then the nonce data should be the same and would not be different. In another example, if the nonce data is the same and the identification information is different, this may raise a red flag and a likelihood of a replay attack. For instance, if a different authentication event is occurring, it is extremely unlikely that the nonce data would be a match. The nonce data is selected to include data that should change between authentication events. In another example, if the nonce data and the identification information is the same, this may occur if data is being recorded multiple times for the same authentication event. Alternatively, any indication of identical nonce data, even if the identification information is purportedly the same, may be a red flag or provide some possibility of a replay attack.
In some embodiments, the sealed authentication parameter 600 may include the nonce data and the identification information in an individually distinguishable or readable format. For instance, the nonce data may be assessed and read, and the identification information may be assessed and read. The sealed authentication parameter may permanently link together the nonce data and the identification information in an inseparable format. In alternative embodiments, the authentication parameter may not allow the nonce data and the identification information to be individually distinguished or readable.
In some embodiments, nonce data 601 and identification data 603 may be encrypted as sealed authentication parameters 600. The nonce data and identification data may be used as input parameters of a secret encryption algorithm implemented in order to produce the authentication parameter. Various methods can be used for encrypting the parameter. For example, symmetrical keys may be used for encryption and decryption. These keys can be composed from a sentence or a series of non-meaningful characters, and encryption is done by performing a bitwise XOR operation on data chunks (e.g., original data, structure data and Reed-Solomon data) that compose the parameter (e.g., nonce data and identification data). In another example, the nonce data and identification data can be encrypted using a 1024 bit polymorphic cipher, or, depending on the export controls, an AES 256 bit encryption method. Furthermore, encryption can be performed using remote key (seeds) or local keys (seeds). Alternative encryption methods can be used as would be understood by those skilled in the art, for example, SHA256, AES, Blowfish, RSA and the like. In some cases, a software and/application on the user device and other authentication system or entities involved in the transaction may possess the encryption key and the encryption method.
The combination of identification data and nonce data (sealed authentication parameter) can be used for authentication. The identification data may be provided by a static token. The identification data can be used for identifying a user and/or device. The nonce data may be collected from a process of capturing and analyzing the same static token. The nonce data can be used for fraud detection. The nonce data may be analyzed on its own and/or may be compared with one or more previously stored sets of nonce data. If the nonce data identically matches a previously stored set of nonce data, it may be determined that there is a chance of a replay attack. This may suggest that the user is not who the user is purporting to be, or that the user is providing falsified information.
In some embodiments, the authentication parameter 611 may include additional information as shown in scenario B of
In another embodiment, the additional information may include data in response to a dynamic token 615. The dynamic token and the result data may be used to authenticate the user, the device, or the transaction and may add additional security to the authentication process. The dynamic token may be provided by an authentication system or an entity involved in a transaction and received by the user device. Different dynamic tokens may be generated for different transactions. The dynamic tokens may be initially generated by the authentication system and transmitted to the user device. A user may be authenticated when the returned dynamic token or information uniquely associated with the dynamic token matches the initial dynamic token.
In some embodiments, the dynamic token may be instructions including a set of operational parameters for an imaging device. The operational parameters may set several parameters of the imaging device to a fixed value during a transaction. For instance, the focus length, ISO speed, use of flash, and the like may be set to a fixed number when the camera is used for capturing image data of a graphical token. In some cases, the user may need to cope with the setting of the imaging device, for example by adjusting the distance between the physical token and the imaging device in order to focus the camera lens on the physical token.
Additional data 615 as a response to the dynamic token may be included in the sealed authentication parameter. For instance, focus length, ISO speed, aperture time, shutter speed and the like that may be affected by the dynamic token may be collected and returned back to the authentication system or entity for verification or authentication.
Alternatively, nonce data may be analyzed as result of receiving the dynamic token. The dynamic token may result in a change in the nonce data. As previously described, the nonce data may include operational parameters of an imaging device. Thus, assessing the corresponding data included in the nonce data may verify the validity of the sealed authentication parameter.
A set of nonce data and identification data may be collected during an authentication event 702. The identification data may be provided by a physical token such as a visual graphical code as described elsewhere herein. An image data about the physical token may be captured by a user device. One or more processors may be configured to decode the captured visual graphical code and obtain the identification data. In some embodiments, the decoded identification data may be previously encrypted by a third-party such that the decoded identification data may or may not be readable without the encryption key. The identification data may be of any format and data type as described previously. The identification data may pertain to the visual graphical code. The identification data may pertain to a user. The identification data may pertain to a service.
As described elsewhere herein, the identification data may contain information that is pertained to the same physical token used as in the transaction event, same user, same service, or same transaction. Identification data may contain information used to authenticate or verify identity of a user. The identification data may contain personal information such as name, date of birth, address, nationality and the like that describe identity of a user. The identification data may contain product information such as instructions, purchase options, service provider information and the like that describe identity of a product or a service. The identification data may contain any type of information that can uniquely identify a user, a service, a transaction, etc.
The identification data may or may not be provided by the same image data as used for collecting nonce data. For example, nonce data may be collected from a state of imaging device when it is capturing an image data, where the same image data may not provide identification information. In another example, nonce data may be collected from a state of captured image data that contains a static token such as a graphical code, the static token may or may not provide identification information. In a different example, nonce data may be collected from a state of captured image data that contains a static token, where the static token may provide a portion of the identification information.
The nonce data may be collected concurrently with collecting the identification data. As described elsewhere herein, the nonce data may be collected when the physical token containing the identification data is scanned by an imaging device, processed and analyzed by one or more processors. The nonce data may be collected in response to a detection of an authentication event. The nonce data may be collected in response to a static token (e.g., visual graphical code) is captured by the user device using an imaging device. The nonce data may be collected with aid one or more processors on a user device. The nonce data may be collected with aid one or more sensors on a user device. The nonce data may be generated based on sensor data collected by one or more sensors on the user device. The nonce data may include or be derived from data about a state of the imaging device. The nonce data may include or be derived from data about a state of the captured image data. The nonce data may include or be derived from data about a state of the user device. The nonce data may include or be derived from data about a local state or environmental state of the imaging device. The nonce data may include imaging device operational parameters, image data characteristics, positional information, time-based information, or any other type of information as described elsewhere herein. The nonce data may include or be derived from data that is not likely to repeat between authentication events. The nonce data may include data that is less than 2%, 1%, 0.5%, 0.1%, 0.05%, 0.01%, 0.005%, or 0.001% likely to repeat between authentication events. The nonce data may represent a singularity value that is not to be repeated. In some embodiments, if the nonce data were to be 100% identical, it would be indicative of a replay attack, or be extremely likely to be a replay attack.
The nonce data may reflect a state of the imaging device and/or a state of the captured image data at a single point in time or over multiple points in time. The nonce data may be substantially unique for that authentication event. Collected data from a user device may optionally be communicated to a device external to the user device. The collected data may be interpreted on-board the user device to generate a set of nonce data. Alternatively, the device external to the user device may generate the nonce data based on collected data received. If an external device generates the nonce data, the nonce data may or may not be sent back to the user device.
Once a set of nonce data has been generated, it may be sealed with identification data for authentication 704. The sealed authentication parameter including the identification data and nonce data can be the same authentication parameter 600 as described in
Once a set of nonce data has been generated, it may be stored together with the identification data as historic nonce data and historic identification data 706. The way nonce data and identification data are stored can be the same as described in
The historic nonce data may include data collected with aid of one or more sensors and one or more processors of a user device. The historic nonce data may include nonce data allegedly belonging to the same user, the same physical token, and/or associated with the same device. For instance, if a current set of nonce data is collected for a first user, the historic positional data may include nonce data collected for the same user. This may include all nonce data for the same user (and/or device) collected using the same device. This may or may not include ‘registration’ nonce data. In some embodiments, a user may register a user's identity and/or a user device's identity by performing an initial authentication. A set of nonce information generated from the initial authentication may be stored as the registration nonce data. Alternatively, no particular registration nonce data is created. The various nonce data from all the authentication events for the user (and/or same device) may be stored. Alternatively, only the registration nonce data may be stored. Alternatively, only the most recent set of nonce data for a particular user (and/or user device) may be stored. In some instances, only the X most recent sets of nonce data for a particular user (and/or device) may be stored, where X is a predetermined number, e.g., X=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or more.
In some embodiments, the historic nonce data may include nonce data collected by the user device belonging to any user that has interacted with the user device. For instance, multiple users may have performed transactions or authentication events using the user device. The historic nonce data may include nonce data belonging to various users (and/or devices of the same user or different users), which may include the allegedly same user. For instance, if a current set of nonce data is collected for a first device, the historic nonce data may include sets of nonce data collected for the same user as well as other users. This may include all nonce data for the one or more users collected using the same device. This may or may not include ‘registration’ nonce data. In some embodiments, a user may register the user or a user's device by performing an initial authentication event. A set of nonce data generated from the initial authentication event may be stored as the registration nonce data for that user, or for that device of the user. Such registration may occur for multiple devices and/or multiple users. In some instances, each device may need to be registered the first time they are used for an authentication event. Alternatively, no particular registration nonce data is created. The various sets of nonce data from all the authentication events may be stored. Alternatively, only the registration nonce data may be stored per device or per user. Alternatively, only the most recent set of nonce data per device or per user may be stored. In some instances, only the X most recent sets of nonce data per device or per user may be stored, where X is a predetermined number, e.g., X=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or more.
As previously described the historic data may pertain to data collected using a particular user device. Alternatively, data from user devices may be shared and/or aggregated. The historic data may include data from multiple user devices. The historic data may include nonce data collected through multiple user devices. This may include the same user or multiple users performing authentication events at a single user device or over multiple user devices. The historic data may include data pertaining to all users that may be interacting with a user device or multiple user devices that may be providing information to the historic nonce data database. For example, an external device, such as a server or any other device described elsewhere herein, may receive nonce data from one or more user devices and store the historic nonce data.
After a set of nonce data and identification has been collected, it may be compared with one or more previously collected sets of nonce data and identification data 708. This may include comparing the identification data with historic identification data for authentication or identification, then comparing the set of nonce data with historic nonce data associated with the identity for fraud detection. The set of nonce data may be compared with sets of nonce data that allegedly come from the same identification data (e.g., the same physical token of the user as the one that is being used for the authentication event, the same user, or the same user device, etc). For instance, the identification data may include identifying information such as a user's name or other identifier, or may be used to access an account where the user's name or other identifier may be accessed. The identification information may be used to identify the allegedly same user. For example, if the identification information indicates the user is John Doe, the set of nonce data may be compared to other sets of nonce data that belong to John Doe. This may be compared to nonce data for all cards of John Doe, or only the same physical token of John Doe as the one that is being used for the authentication event. If the collected nonce data identically match the previously stored nonce data, then there may be some suspicion raised whether the user is likely the same user that was previously identified as John Doe. An identical match may be highly unlikely to occur naturally and may be indicative of a replay attack.
The set of nonce data may be compared with any or all of the previously collected sets of nonce data that supposedly belong to the same user. This may be more specifically narrowed to the same physical token of the user, or may apply for any or all physical tokens of the same user. For instance, if a registration set of nonce data is provided, the collected set of nonce data may be compared with the registration set of nonce data. The collected nonce data may be compared with the registration nonce data without being compared with any other nonce data, may be compared with the registration nonce data and other nonce data, or may be compared with other nonce data without being compared with the registration nonce data. In some instances, the nonce data may be compared with the most recently collected nonce data. The nonce data may be compared with a predetermined number of most recently collected nonce data, e.g., the two most recently collected sets of nonce data, the three most recently collected sets of nonce data, the four most recently collected sets of nonce data, the five most recently collected sets of nonce data, and so forth for any number of most recently collected nonce data.
In some embodiments, the nonce data may be checked to see if they are within a predetermined range. If the nonce data are detected to be exceeding a pre-determined range, it is likely that the data is changed maliciously by a fraudster. For instance, the nonce data derived from orientation angle of the barcode region with respect to the image frame may be in the range (in a four digits format) from 0000 to 3600, if the number is detected to be out of the range such as 3800, it may indicate a fraud.
The nonce data may be compared with nonce data that allegedly come from any user that has identification information stored at the historic nonce data. When the set of nonce data is collected, identification information may be collected during the authentication event, which may include data about the user and/or user device. As previously discussed, the identification information may be used to identify the user. The identification information may be used to identify the allegedly same user. For example, if the identification information indicates or is used to find that the user is John Doe, the nonce data of the card may be compared to other nonce data that belong to John Doe as well as any other users that may have stored historic data. If the collected nonce data identically matches the previously stored nonce data, then it may raise a suspicion of a replay attack.
The set of nonce data may be compared with any or all of the previously collected sets of nonce data that supposedly belonging to any of the users participated in authentication events. For instance, if nonce data are provided for the various users, the nonce data may be compared with the registration nonce data of the various users. The nonce data may be compared with the registration nonce data without being compared with any other nonce data, may be compared with the registration nonce data and other nonce data, or may be compared with other nonce data without being compared with the registration nonce data. In some instances, the nonce data may be compared with the most recently collected nonce data for each of the users or devices of the users. The nonce data may be compared with a predetermined number of most recently collected nonce data, e.g., the two most recently collected sets nonce data, the three most recently collected sets of nonce data, the four most recently collected sets of nonce data, the five most recently collected sets of nonce data, and so forth for any number of most recently collected sets of nonce data.
An identification of the user based on the comparison may be assessed 710. The identification may include authentication of a user as being the actual user based on the identification data. If for the same identification data the collected set of nonce data raises a red flag when compared with previously stored sets of nonce data (e.g., when the matches are too identical), there may be an indication that the currently current authentication event is not being performed by the same user. For instance, if the nonce data does match identically, and there is a previous set of nonce data for John Doe, then the current user attempting the authentication may not be John Doe. The same identification and/or authentication may be performed for a user device. For instance, if a user device is identifying itself as a particular device, and the same nonce data is collected as for a previous authentication event, a red flag may be raised. There may be an indication that the current authentication event is not being performed by the same device, and that another device may be participating in a replay attack.
Optionally, an indication of a likelihood of fraud may be provided. For instance, if identification data identifies as a particular user (e.g., John Doe), and the nonce data identically matches the nonce data from an earlier authentication event of the same user (e.g., John Doe), then a possibility of fraud may be provided. The possibility of fraud may be a binary indicator (e.g., fraud alert, no fraud), or may be provided as a risk value (e.g., numerical value, such as a percentage, or graded value, such as a letter grade). For instance, a fraud grade of 9 may provide a higher likelihood of fraud than a fraud grade of 2.
The collected nonce data may be completely identical to the previously stored set(s) of nonce data to be considered an identical match (e.g. 100% match). A perfect 100% match may be suspicious. For instance, each time a user performs an authentication event, there is likely to be some minor variation. Physically it is extremely unlikely that an individual to perform an authentication event at exactly the same position (e.g., orientation and/or spatial location). In another example, it is also extremely unlikely to capture the exact same image of the physical token. Having the exact same characteristics may be an indicator of a type of replay attack.
In some embodiments, when a risk of fraud is detected, one or more individuals may be alerted. For instance, the user that is performing the authentication event may or may not be notified that their attempt at authentication was flagged with some risk of fraud. An entity with whom the user is attempting to conduct a transaction may or may not be notified of the risk of fraud. For instance, if the user is attempting to purchase an item from an e-commerce site, the e-commerce site may be informed that the transaction has been flagged with some risk of fraud. The transaction itself may or may not be permitted to continue. In some instances, if there is any risk of fraud, the transaction may be stopped. Alternatively, if there is some risk of fraud, but it is determined to be low, the transaction may continue while one or more parties are notified of some fraud risk and/or further checks may occur. If a risk of fraud exceeds a threshold level (e.g., reaches a moderate or high risk of fraud), the transaction may be stopped.
Any type of fraud may be detected. In some embodiments, the detected fraud may include a replay attack. During a replay attack, data may be recorded during an authentication event and then replayed in a subsequent authentication event, to pass off as the same user, user device, or cause the authentication event to be completed (e.g., transaction to be completed). The replay attack may be performed by a different user than an initial authentication event, or by the same user as the initial authentication event. The replay attack may be performed using the same device as the initial authentication event, or using a different device as the initial authentication event.
In some instances, the threshold for stopping the transaction may depend on the value of the transaction or other characteristics of the transaction. For instance, for high-value transactions, the threshold for stopping the transaction may be lower than for low-value transaction. For example, if the transaction is for a large monetary amount, even a low risk of fraud may cause the transaction to be stopped, while for a smaller monetary amount, a higher risk of fraud may be required to cause the transaction to be stopped. Alternatively, the threshold for stopping the transaction may be the same for all transactions.
The sealed nonce data and identification data may be collected during and/or in response to an authentication event. For instance, the nonce data and identification data may be collected when a user is attempting to self-identify and/or authenticate the user. The user may attempt to self-identify and/or be authenticated to access a user account and/or perform a transaction. The sealed nonce data and identification data may be used for authentication of a device and/or user individually, or in combination. The sealed nonce data and identification data may be used in authorization of a transaction individually, or in combination with other information, such as financial information. The sealed nonce data and identification data may be used for fraud detection alone.
In some embodiments, when the nonce data and the identification data are analyzed, the data for all may be collected from a single event. All of the nonce data and the identification data may be assessed simultaneously. In some other embodiments, the nonce data the identification data may be assessed in sequence or in various orders.
Various steps of the authentication process may be performed on a user device. The user device, as described elsewhere herein, can be for example, one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments. For example, a user device may be a computing device that is capable of executing software or applications. In some embodiments, the software and/or application may be configured to collect identification data and nonce data 702 by enabling a user to scan a graphical code/token using the user device, process the captured image to decode the identification information and collect nonce data, transmit the sealed authentication data between the user device and other external devices or systems during a transaction 704. The software and/or application may or may not encrypt the sealed authentication data. In some embodiments, the software and/or application may be configured to prompt the user the type of physical token to be captured based on instructions received from other devices or entities involved in the transaction or pre-determined instructions.
In some embodiments, the software and/or application may be configured to compare the identification data and nonce data with historic data on the user device 708 then provide the assessment result to another device or system for further identification or authentication 710 during a transaction. In other embodiments, the software and/or application may be configured to operation the comparison 708 and identification/authentication 710 on the user device to complete a transaction.
The software and/or application may or may not be configured to seal the identification data and nonce data with additional transaction information. In some embodiments, the additional transaction information may be provided by various sources or means other than the image data used for collecting nonce data. For instance, during a transaction, a user may be prompted to scan a graphical code (e.g., barcode on an ID card) on a card or external device for authentication. In additional to the identification information and nonce data collected from the captured image, the user may also input other transaction information such as user account name, password, financial transaction value and the like. The additional information may be sealed with the identification data and nonce data and transmitted to the other entities involved in the transaction.
The software and/or application may be further configured to control the imaging device. In some embodiments, a dynamic token containing a set of operational parameters for the imaging device may be received by the software and/or application. The dynamic token can be same dynamic token as described in
In other embodiments, nonce data may be used for fraud detection alone. The nonce data may be analyzed on its own and/or may be compared with one or more previously stored sets of nonce data. If the nonce data identically matches a previously stored set of nonce data, it may be determined that there is a chance of a replay attack. This may suggest that the user is not who the user is purporting to be, or that the user is providing falsified information.
A set of nonce data may be collected during an authentication event 802. The nonce data may be collected continuously, or in response to a schedule. The nonce data may be collected in response to a detection of an authentication event. The nonce data may be collected in response to an imaged based token is captured by the user device. The nonce data may be collected with aid one or more processors on a user device. The nonce data may be collected with aid one or more sensors on a user device. The nonce data may be generated based on sensor data collected by one or more sensors on the user device. The nonce data may include or be derived from data about a state of the imaging device. The nonce data may include or be derived from data about a state of the captured image data. The nonce data may include or be derived from data about a state of the user device. The nonce data may include or be derived from data about a local state or environmental state of the imaging device. The nonce data may include imaging device operational parameters, image data characteristics, positional information, time-based information, or any other type of information as described elsewhere herein. The nonce data may include or be derived from data that is not likely to repeat between authentication events. The nonce data may include data that is less than 2%, 1%, 0.5%, 0.1%, 0.05%, 0.01%, 0.005%, or 0.001% likely to repeat between authentication events. The nonce data may represent a singularity value that is not to be repeated. In some embodiments, if the nonce data were to be 100% identical, it would be indicative of a replay attack, or be extremely likely to be a replay attack.
The nonce data may reflect a state of the imaging device and/or a state of the captured image data at a single point in time or over multiple points in time. The nonce data may be substantially unique for that authentication event. Collected data from a user device may optionally be communicated to a device external to the user device. The collected data may be interpreted on-board the user device to generate a set of nonce data. Alternatively, the device external to the user device may generate the nonce data based on collected data received. If an external device generates the nonce data, the nonce data may or may not be sent back to the user device.
Once a set of nonce data has been generated, it may be stored with historic nonce data 804. The historic nonce data may be stored in one or more memory units. The historic nonce data may be stored in a memory on-board the user device, on-board a device external to the user device (e.g., a separate device of any of the types described above), or distributed over multiple devices (e.g., peer-to-peer, cloud-computing based infrastructure, between the user device and an external device). In some embodiments, the nonce data may be generated on-board the user device and stored on-board the user device, an external device, or distributed over multiple devices. In other embodiments, the nonce data may be generated on-board an external device and may be stored on-board the external device, or the user device, or distributed over multiple devices. The one or more memory units may include databases. A single copy of the historic nonce data may be stored, or multiple copies may be stored. The multiple copies may be stored at different memory units. For instance, the multiple copies may be stored on difference devices (e.g., first copy on-board a user device, and second copy on-board an external device).
The historic nonce data may include data collected with aid of one or more sensors and one or more processors of a user device. The historic nonce data may include nonce data allegedly belonging to the same user and/or associated with the same device. For instance, if a current set of nonce data is collected for a first user, the historic positional data may include nonce data collected for the same user. This may include all nonce data for the same user (and/or device) collected using the same device. This may or may not include ‘registration’ nonce data. In some embodiments, a user may register a user's identity and/or a user device's identity by performing an initial authentication. A set of nonce information generated from the initial authentication may be stored as the registration nonce data. Alternatively, no particular registration nonce data is created. The various nonce data from all the authentication events for the user (and/or same device) may be stored. Alternatively, only the registration nonce data may be stored. Alternatively, only the most recent set of nonce data for a particular user (and/or user device) may be stored. In some instances, only the X most recent sets of nonce data for a particular user (and/or device) may be stored, where X is a predetermined number, e.g., X=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or more.
In some embodiments, the historic nonce data may include nonce data collected by the user device belonging to any user that has interacted with the user device. The historic nonce data may include nonce data belonging to various users (and/or devices of the same user or different users), which may include the allegedly same user. This may include all nonce data for the one or more users collected using the same device. This may or may not include ‘registration’ nonce data. In some embodiments, a user may register the user or a user's device by performing an initial authentication event. A set of nonce data generated from the initial authentication event may be stored as the registration nonce data for that user, or for that device of the user. Such registration may occur for multiple devices and/or multiple users. In some instances, each device may need to be registered the first time they are used for an authentication event. Alternatively, no particular registration nonce data is created. The various sets of nonce data from all the authentication events may be stored. Alternatively, only the registration nonce data may be stored per device or per user. Alternatively, only the most recent set of nonce data per device or per user may be stored. In some instances, only the X most recent sets of nonce data per device or per user may be stored, where X is a predetermined number, e.g., X=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or more.
After a set of nonce data has been collected, it may be compared with one or more previously collected sets of nonce data 806. This may include comparing the set of nonce data with historic nonce data. The set of nonce data may be compared with sets of nonce data that allegedly come from the same user (or same user device). For instance, when the set of nonce data is collected, additional information may be collected during the authentication event, which may include authentication/identification information. The additional information may include identifying information such as a user's name or other identifier, or may be used to access an account where the user's name or other identifier may be accessed. The additional information may be used to identify the allegedly same user. For example, if the additional information indicates the user is John Doe, the set of nonce data may be compared to other sets of nonce data that belong to John Doe. This may be compared to nonce data for all cards of John Doe, or only the same user device of John Doe as the one that is being used for the authentication event. If the collected nonce data identically match the previously stored nonce data, then there may be some suspicion raised whether the user is likely the same user that was previously identified as John Doe. An identical match may be highly unlikely to occur naturally and may be indicative of a replay attack.
The additional information may include identification data as described elsewhere herein. The identification information can be the same identification information as described in
The set of nonce data may be compared with any or all of the previously collected sets of nonce data that supposedly belong to the same user. This may be more specifically narrowed to the same device of the user, or may apply for any or all devices of the same user. For instance, if a registration set of nonce data is provided, the collected set of nonce data may be compared with the registration set of nonce data. The collected nonce data may be compared with the registration nonce data without being compared with any other nonce data, may be compared with the registration nonce data and other nonce data, or may be compared with other nonce data without being compared with the registration nonce data. In some instances, the nonce data may be compared with the most recently collected nonce data. The nonce data may be compared with a predetermined number of most recently collected nonce data, e.g., the two most recently collected sets of nonce data, the three most recently collected sets of nonce data, the four most recently collected sets of nonce data, the five most recently collected sets of nonce data, and so forth for any number of most recently collected nonce data.
In some embodiments, the nonce data may be checked to see if they are within a predetermined range. If the nonce data are detected to be exceeding a pre-determined range, it is likely that the data is changed maliciously by a fraudster. For instance, the nonce data derived from orientation angle of the barcode region with respect to the image frame may be in the range (in a four digits format) from 0000 to 3600, if the number is detected to be out of the range such as 3800, it may indicate a fraud.
The nonce data may be compared with nonce data that allegedly come from any user that has information stored at the historic nonce data. When the set of nonce data is collected, additional information may be collected during the authentication event, which may include data about the user and/or user device. As previously discussed, the additional information may include identifying information that may be used to identify the user. The additional information may be used to identify the allegedly same user. For example, if the additional information indicates or is used to find that the user is John Doe, the nonce data of the card may be compared to other nonce data that belong to John Doe as well as any other users that may have stored historic data. If the collected nonce data identically matches the previously stored nonce data, then it may raise a suspicion of a replay attack.
The set of nonce data may be compared with any or all of the previously collected sets of nonce data that supposedly belonging to any of the users participated in authentication events. For instance, if nonce data are provided for the various users, the nonce data may be compared with the registration nonce data of the various users. The nonce data may be compared with the registration nonce data without being compared with any other nonce data, may be compared with the registration nonce data and other nonce data, or may be compared with other nonce data without being compared with the registration nonce data. In some instances, the nonce data may be compared with the most recently collected nonce data for each of the users or devices of the users. The nonce data may be compared with a predetermined number of most recently collected nonce data, e.g., the two most recently collected sets nonce data, the three most recently collected sets of nonce data, the four most recently collected sets of nonce data, the five most recently collected sets of nonce data, and so forth for any number of most recently collected sets of nonce data.
An identification of the user based on the comparison may be assessed 808. The identification may include authentication of a user as being the actual user based on the authentication and/or identification information. If for the same additional information the collected set of nonce data raises a red flag when compared with previously stored sets of nonce data (e.g., when the matches are too identical), there may be an indication that the currently current authentication event is not being performed by the same user. For instance, if the nonce data does match identically, and there is a previous set of nonce data for John Doe, then the current user attempting the authentication may not be John Doe. The same identification and/or authentication may be performed for a user device. For instance, if a user device is identifying itself as a particular device, and the same nonce data is collected as for a previous authentication event, a red flag may be raised. There may be an indication that the current authentication event is not being performed by the same device, and that another device may be participating in a replay attack.
Optionally, an indication of a likelihood of fraud may be provided. For instance, if various authentication and/or identification information identifies as a particular user (e.g., John Doe), and the nonce data identically matches the nonce data from an earlier authentication event of the same user (e.g., John Doe), then a possibility of fraud may be provided. The possibility of fraud may be a binary indicator (e.g., fraud alert, no fraud), or may be provided as a risk value (e.g., numerical value, such as a percentage, or graded value, such as a letter grade). For instance, a fraud grade of 9 may provide a higher likelihood of fraud than a fraud grade of 2.
The collected nonce data may be completely identical to the previously stored set(s) of nonce data to be considered an identical match (e.g. 100% match). A perfect 100% match may be suspicious. For instance, each time a user performs an authentication event, there is likely to be some minor variation. Physically it is extremely unlikely that the exact same image data of a physical token is captured by an individual to perform an authentication event. Having the exact same characteristics may be an indicator of a type of replay attack.
In some embodiments, when a risk of fraud is detected, one or more individuals may be alerted. For instance, the user that is performing the authentication event may or may not be notified that their attempt at authentication was flagged with some risk of fraud. An entity with whom the user is attempting to conduct a transaction may or may not be notified of the risk of fraud. For instance, if the user is attempting to purchase an item from an e-commerce site, the e-commerce site may be informed that the transaction has been flagged with some risk of fraud. The transaction itself may or may not be permitted to continue. In some instances, if there is any risk of fraud, the transaction may be stopped. Alternatively, if there is some risk of fraud, but it is determined to be low, the transaction may continue while one or more parties are notified of some fraud risk and/or further checks may occur. If a risk of fraud exceeds a threshold level (e.g., reaches a moderate or high risk of fraud), the transaction may be stopped.
Any type of fraud may be detected. In some embodiments, the detected fraud may include a replay attack. During a replay attack, data may be recorded during an authentication event and then replayed in a subsequent authentication event, to pass off as the same user, user device, or cause the authentication event to be completed (e.g., transaction to be completed). The replay attack may be performed by a different user than an initial authentication event, or by the same user as the initial authentication event. The replay attack may be performed using the same device as the initial authentication event, or using a different device as the initial authentication event.
In some instances, the threshold for stopping the transaction may depend on the value of the transaction or other characteristics of the transaction. For instance, for high-value transactions, the threshold for stopping the transaction may be lower than for low-value transaction. For example, if the transaction is for a large monetary amount, even a low risk of fraud may cause the transaction to be stopped, while for a smaller monetary amount, a higher risk of fraud may be required to cause the transaction to be stopped. Alternatively, the threshold for stopping the transaction may be the same for all transactions.
The nonce data may be collected during and/or in response to an authentication event. For instance, the nonce data may be collected when a user is attempting to self-identify and/or authenticate the user. The user may attempt to self-identify and/or be authenticated to access a user account and/or perform a transaction. The nonce data may be used for identification individually, or in combination with other information. The nonce data may be used in authentication of a device and/or user individually, or in combination. The nonce data may be used in authorization of a transaction individually, or in combination with other information, such as financial information. The nonce data may be used for fraud detection alone, or in combination with other information.
In some embodiments, when the nonce data, and/or any other information are analyzed, the data for all may be collected from a single event. All of the nonce data and/or any other information may be assessed simultaneously. In some other embodiments, the nonce data and/or other information may be assessed in sequence or in various orders.
In some embodiments, the authentication parameter data may be used in performing an identification and/or authentication of the user. This may be used in a transaction process. A likelihood of fraud may or may not be assed, using the authentication parameter. The authentication parameter data may optionally be used in a process similar to
An authentication system may include one or more user devices 900a, 900b, 900c, 900d that may communicate with one or more external devices 910, 920. The one or more user devices may be associated with one or more respective users. Communications may occur over a network 930 or may occur directly. Physical tokens such as graphical codes 960a, 960b, 970d may be captured and analyzed by one or more user devices and data (e.g., identification data and nonce data) may be collected. A selfie image of the user 970c may be captured by one or more user devices and data (e.g., identify of user and nonce data) may be collected. In some cases, a selfie image of the user 970e and the associated nonce data may be used in addition to capturing an image of the physical token 960b. Data from the one or more user devices 940a, 940b, 940c, 940d may be conveyed to the one or more external devices. In some embodiments, data received by a first external device 950a may be the same as data received by a second external device 950b, or the data may be different. In one example, a first external device may be or belong to an authentication server system (e.g., a server system configured to provide secure authentication), and/or a second external device may be or belong to one or more third parties (e.g., any transaction entity as described elsewhere herein, such as a merchant's system, a broker's system, or other entity requiring identity authentications).
The network 930 may be a communication network. The communication network(s) may include local area networks (LAN) or wide area networks (WAN), such as the Internet. The communication network(s) may comprise telecommunication network(s) including transmitters, receivers, and various communication channels (e.g., routers) for routing messages in-between. The communication network(s) may be implemented using any known network protocol, including various wired or wireless protocols, such as Ethernet, Universal Serial Bus (USB), FIREWIRE, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth, Wi-Fi, voice over Internet Protocol (VoIP), Wi-MAX, or any other suitable communication protocols.
The user devices 900a, 900b, 900c, 900d may include one or more characteristics of the various embodiments of the user devices described elsewhere herein. For example a user device may have one or more characteristics, components, or functions of the user device of
The various types of user devices may include, but are not limited to, a handheld device, a wearable device, a mobile device, a tablet device, a laptop device, a desktop device, a computing device, a telecommunication device, a media player, a navigation device, a game console, a television, a remote control, or a combination of any two or more of these data processing devices or other data processing devices. Optionally a user device may be able to read a magnetic card, such as any type of payment card. The user device may be capable of performing an authentication read of a payment card. The user device may accept a swipe of the payment card and be able to read magnetic information from the payment card. The use device may be capable of reading one or more swipe characteristics of the payment card, such as swipe speed, direction, angle, variation, and/or inherent magnetic properties of the payment card. Alternatively, the user device may connect to a card reader having any of the functionality described herein.
A first external device 910 may include one or more processors. The first external device may be an authentication server system. The first external device may include or have access to one or more databases. The first external device may be in communication with one or more user devices 900a, 900b, 900c, 900d. The first external device may be in communication with various user devices with aid of a communication unit (e.g., an I/O interface). The first external device may be in communication with various transaction entity systems (e.g., merchant's system, broker's system, credit card companies, social network platforms, and/or other entities). The first external device may be in communication with various external server systems with aid of one or more I/O interfaces. The I/O interface to the user devices and/or the card readers may facilitate the processing of input and output associated with the user devices and/or the card readers respectively. For example, the I/O interface may facilitate the processing of a user input associated with a request for secure authentication. The I/O interface to external server systems may facilitate communications with one or more third-party entities (e.g., merchant's system, broker's system, credit card companies, social network platforms, and/or other entities).
The first external device may comprise memory storage units which may comprise non-transitory computer readable medium comprising code, logic, or instructions for performing one or more steps. The one or more processors of the first external device may be capable of executing one or more steps, for instance in accordance with the non-transitory computer readable media. In some embodiments, the one or more processors may generate or receive requests for performing secure authentications, processing the requests, comparing nonce data and identification data, identifying information needed for the authentications, performing the authentications, and returning the authentication results in response to the requests. The one or more databases may store various information, including but not limited to, corresponding nonce data, corresponding identification data, account information associated with each user, device information of the user device (e.g., a user device identifier), historic authentication data, and/or usage data associated with each user (e.g., activity data associated with each user).
The data stored about a user may include identification information about the user. The identification information may include name, data of birth, address, telephone number, gender, social security number, or any other personal information about the user.
The data stored about a user may include financial information about the user. The financial information may include card reader about the user and/or account information about the user. The card information of a user may include a card type (e.g., credit card, membership card, identity card, etc.), a card issuer (e.g., a credit carrier, a company, the government, etc.), a credit carrier type (e.g., Visa, Mastercard, American Express, Discover, etc.), a card number, a card expiration date, and/or a card security code. The account information may include user's name, user's mailing address, user's telephone number, user's email address, user's birthdate, user's gender, user's social security number, user account ID and associated password, or any other personal information about the user.
Transaction related data such as nonce data may be stored. The nonce data may be associated with the user or a user device for a particular authentication event (e.g., transaction). The nonce data may be derived or may include information about conditions or parameters of the device that are extremely unlikely to repeat (e.g., chance of repetition is less than or equal to 1%, 0.5%, 0.1%, 0.05%, 0.01%, 0.005%, 0.001%, 0.0005%, 0.0001%, 0.00005%, 0.00001%, 0.000005%, or 0.000001%), individually or in combination. The nonce data may represent a singularity value for the device at that particular point in time or time interval.
The sealed authentication parameter including the identification data and nonce data may be stored in the one or more database as described in
The various types of information (e.g., financial information, user information, device information, and/or nonce data) may be obtained and stored in the databases of the first external device 950a during various authentication activities of the user. The first external device may have access to the databases or a subset of the databases for storing the various types of information. The various types of information may or may not also be obtained and stored during an initial registration of the user at the first external device (e.g., an authentication server system). In some embodiments, the various types of information may be accessible by the first external device. For instance, the second external device (e.g., a third-party entity) 920 may or may not be able to access the same databases or a subset of the same databases for storing the various types of information.
The second external device 920 may be or belong to a third-party entity. The third-party entity may be implemented on one or more standalone data processing apparatuses or a distributed network of computers. In some embodiments, the entity may also employ various virtual devices and/or services of third party service providers (e.g., third-party cloud service providers) to provide the underlying computing resources and/or infrastructure resources. In some embodiments, upon user's approval and in pursuance to related privacy policies, the third-party transaction entity may or may not store card information, account information, usage data, nonce data, and/or device information associated with the user. One or more third-party transaction entities may comprise e-commerce systems, retail systems, financial institutions (e.g., banks, brokers, and credit card companies), merchant's systems, social networking platforms, and/or other entities which the user performs authentications with. In some instance, the third-party entity may be an online e-commerce, and a user nonce data relating to a user's device may be analyzed to complete or deny a purchase of a product online. In some instance, the third-party entity may be a broker system, and nonce data may be analyzed for verifying transfers of funds between the user's financial account and the broker system. In some instance, the third-party entity may be a social networking platform which hosts a plurality of user accounts. A user may use the nonce data for verifying user's login to the social networking platform.
As previously described, data accessible by the first external device 950a and the second external device 950b may be the same or may differ. In some embodiments, the first external device may be an authentication system that may be capable of accessing a greater amount of data, and/or the second external device may be a third-party entity that may be capable of accessing a lesser amount of data. The first external device and the second external device may both be capable of accessing nonce data and/or any authentication event related data (e.g., transaction data). Alternatively, the first external device may be capable of obtaining the nonce data while the second external device may not be capable of accessing the nonce data, or vice versa. Optionally, authentication event related data or a subset thereof may be obtained by both the first external device and/or the second external device, or by only one of the first external device or the second external device.
The external device 950a and 950b may or may not be the entities provide the one or more physical tokens 960a, 960b, 960d to the users. The external device may or may not need to decrypt the identification data in order to verify or authenticate a user. In some embodiments, the external device 950a and 950b may be the entity providing a graphical code 970d on a display device for user to scan. The graphical code (e.g., QR code) may be proprietary such that it can be read only by an authenticated application provided by the authentication system running on a user device. In some instances, only the authentication system or the authentication application can encrypt/decrypt the graphical code. The graphical code may encode identification information that can be used as a static token to authenticate the user. When the code is scanned by the user device 900d, nonce data may be automatically generated and used for fraud detection.
Data 940a, 940b, 940c, 940d from the one or more user devices may be accessible by the first external device and/or second external device, as previously described. The data from the one or more user devices may include nonce data and identification data, and/or data about conditions or parameters of the device that may be used to derive or generate nonce data. For example, for an authentication event, the user devices may send corresponding nonce data and/or authentication event related information. The data may be sent in response to the authentication event. The data may be pushed by the user devices or may be pulled by the first external device or the second external device. The data may be sent in real-time. Alternatively, the data may be sent on a periodic basis or in response to a schedule. In some embodiments, the user devices may send data about a state of the imaging device or a state of the captured image data of a static token which may be used to generate the nonce data elsewhere (e.g., at the first external device and/or the second external device). The data about the state of the imaging device and captured image data are as described elsewhere herein. The data about the state of the imaging device and captured image data may include data collected with aid of one or more processors off-board the device. In some embodiments, the data about the state of the imaging device and image data may include raw or pre-processed data from one or more sensors and processors on- or off-board the device.
Steps for performing secure authentications may be implemented according to various embodiments. Requests for authentication may be initiated at user side. In some embodiments, a user may initiate a request for a secure authentication to complete a transaction. For example, during a transaction or a login process, the user may send a user input (e.g., by pressing a button or touching a touch screen of a user device) to indicate the user's intention to initiate a secure authentication for the transaction or the login process. In some embodiments, requests for secure authentication events may be initiated from a user device. In some instances, a request for a secure authentication may be initiated from an external device, such as an authentication server system. In some instances, a request for a secure authentication may be initiated from a third-party entity.
During initial registration of a user account with an authentication server system, the user may register for relevant account settings to require secure authentication for activities associated with this user account. During the following activities, an authentication server system may recognize a request for a transaction or a login process associated with the user account. In response to the request for the transaction, the authentication server system may send a request for a secure authentication to complete the transaction or the login process. During registration and/or the following account activities, the user may register to require authentication for all activities or some activities with certain conditions.
During initial registration of a user account with a third-party entity, the user may register for relevant account settings to require secure authentication for activities associated with this user account. For example, during initial setup of a user account to activate or manage a card on a bank's website or within the bank's application, the user may select to perform secure authentications for one or more transactions. During the following transactions, once the third-party transaction entity recognizes a transaction associated with the user account is requested, a secure authentication is required to complete this transaction using the card. During registration and/or the following account activities, the user may register to require authentication for all activities or some activities with certain conditions.
The secure authentication may require an analysis of the nonce data and identification data, as described elsewhere herein. The secure authentications may be required or provided as an option by an authentication server system for one or more activities. In some embodiments, the secure authentications may be required by a third-party entity. For example, a bank system or a broker system may require secure authentications to be performed to complete all or certain transactions (e.g., flagged transactions, transactions above a predetermined limit amount, or randomly selected transactions). In some instances, a secure authentication may be optional, but the third-party entity may offer rewards (e.g., cashback or bonus reward points) to the user if the user chooses to perform a secure authentication to complete the transaction.
The secure authentications may be required for all activities or some activities associated with the user account. For example, a secure authentication may be required when a transaction involves an amount of money equal to or greater than a predetermined threshold amount. For example, the predetermined threshold amount may be $100, $200, $500, $1000, $5000, $8000, $10,000, $15,000, $20,000. The threshold amount may be determined by the user, an authentication server system, or a third-party entity. In some embodiments, secure authentications may be required when the activities are identified as high risk activities. For example, the high risk activities may involve suspicious/mismatched user identity associated with the user account, suspicious transaction locations, repetitive entering of wrong user information, and/or flagged user account for previously associated fraudulent activates. In some embodiments, high risk activities may involve high speed transactions, such as requiring for funds to be transferred within a short period of time. When high speed transactions are identified, further security checks, such as nonce data analysis, may be required from the user. In some instances, the use of the further authentication may allow for online activities to occur in situations where previously in-person activity was required. The further assurances of a user's identity may aid in giving entities comfort in permitting larger scale transactions.
Nonce data combined with identification data may be used to perform an authentication for a transaction of exchanging money, goods, and/or services with a third-party entity. For example, the user may purchase an item online from the third-party entity (e.g., an e-commerce) using a user device (e.g., a tablet or a mobile phone). The user may perform the authentication on a website or in an application associated with the third-party entity.
In one example, after selecting the desired item to purchase and entering required information for the transaction (e.g., desired quantity of the item and relevant user information), the user may be prompted to perform a secure authentication. For example, when the user wants to purchase an item priced at $1000, the user may receive a notification on the display of the user device which requires the secure authentication. The notification may require the user to scan a physical token such as a PDF417 code on the user's ID card which causes nonce data to be generated for the transaction. The identification data from the PDF417 code may be used to verify or authenticate the user. The nonce data may be compared with historical nonce data associated with the same physical token to confirm that the nonce data is not repeating. If the nonce data is repeating, there may be further authentication checks required, or a red flag may be raised that there is a higher likelihood of a fraudulent event (e.g., replay attack). This may or may not cause the transaction to be denied or delayed.
In some other examples, the user may log into a registered user account on a website or in an application, such as a public service, an online voting system, a social networking service, etc. The user may receive a notification during the login process to perform the secure authentication, such as an identity verification. The notification may require the user to scan a physical token such as a graphical code on the user's document which causes nonce data to be generated for the transaction. The identification data from the graphical code may be used to verify or authenticate the user. The nonce data may be compared with historical nonce data associated with the same physical token to confirm that the nonce data is not repeating. The identity verification may be completed if the physical token is verified and the nonce data shows no indication of fraud.
In some embodiments, the third-party entity may generate the request to perform the secure authentication per requirement of the third-party entity or per user accounting settings registered with the third-party entity. The third-party transaction entity may send the request to the user device for display. The request may prompt the user to scan a graphical code such as a QR code displayed on a graphical user interface. Nonce data may be generated along with scanning of the QR code and sealed with the code to be used for authentication.
During a login process or any other type of authentication event, a secure authentication may be required by the authentication server system, the third-party entity, or the user. In response to the request, nonce data may be collected and/or analyzed with respect to a static token. Nonce data combined with the static token can be obtained and transmitted from the user device to the authentication server system and/or the third-party entity directly or indirectly. The user device information (e.g., user device identifier) may also be transmitted to the authentication server system and/or the third-party entity for verification.
The authentication server system may store or have access to various historic authentication information or registration information that can be used for authentication. The information may include but is not limited to, historic nonce data, transaction data, user account information, user device identifier, or any other type of information as described elsewhere herein. The third-party entity may also store or have access to various sets of historic authentication information or registration information that can be used for authentication, such as historic nonce data, transaction data, user account information, user device identifier, or any other type of information as described elsewhere herein.
The authentication may be performed by the authentication server system solely or the third-party entity solely. In some instances, the authentication may be performed by both systems in a combined manner. For example, some information may be verified at the third-party transaction entity, such as user account information, or user device identifier. Meanwhile, other information may be verified at the authentication server system, such as nonce data.
In some instances, the third-party entity may store or have access to only user account information without having access to other confidential and/or financial information of a user, such as nonce data. Thus when an authentication with the third-party entity requires an authentication, the third-party entity may designate the authentication server system to perform an authentication. The authentication server system may then perform the authentication and return a message to the third-party transaction entity indicating whether the authentication is approved or not. The authentication server may return the message based on an analysis of nonce data for the particular authentication event. The transaction may then be approved or rejected accordingly by the third-party entity.
In some embodiments, the authentication server system may be optional in the authentication system. Separate third-party entities may perform any step or all steps of the authentication.
In some embodiments, the authentication server system can simultaneously perform authentication for multiple authentications for different activities. The authentication server system may simultaneously perform authentication for multiple separate third-party entities. Information stored at or accessible to the authentication server system can be collected over multiple transactions associated with various third-party entities. For example, nonce data associated with various third-party entities may be accessible by the authentication server system. This may allow intelligence gathered from multiple transactions to be used in performing the authentication. The authentication server system may have access to data repository that the third-party entities individually may not have access to.
The authentication server system and/or the third-party entity may analyze the received information, and compare the received information with the corresponding information obtained from historic authentications and/or registrations. The comparison may include comparison of nonce data. The user login or transaction may be approved, rejected, or flagged as a risk authentication/login based on the comparison result. The user may be notified by the authentication server system or the third-party entity once the login or authentication is approved, rejected, or flagged.
Various embodiments may exist for evaluating the match between the collected data and historic authentication data or registration data. In some examples, when the collected data from the card reader matches the corresponding historic authentication data or registration data, a message may be sent to the third-party transaction entity to approve the authentication. In some examples, if nonce data (and/or one or more nonce factors of the nonce data) do not match, the authentication can be approved.
For instance, the collected nonce data may need to be at least slightly different from the previously stored set(s) of nonce data associated with the user and/or physical token. In some instances, a perfect 100% match may be suspicious. For instance, each time a physical token is imaged to perform an authentication, there is likely to be some minor variation. Physically it is extremely unlikely that the imaging device and imaging data have exactly the same conditions and characteristics. Having the exact same conditions and characteristics may be an indicator of a type of replay attack.
Depending on authentication analysis, which may include the analysis of the nonce data (and optionally additional analyses of other factors), an indication of fraud may be provided. The indication of fraud may relate to an indication of a replay attack. As previously described, an indication of fraud may provide an indication of a level of fraud risk. The level of fraud risk may optionally depend on the analysis of the nonce data. The level of fraud risk may depend on whether collected nonce data matches historic nonce data. The level of fraud risk may depend on how closely the nonce data matches the historic nonce data, and/or which nonce factors match. For instance, if the nonce data is a perfect a 100% match for all factors, the level of fraud risk may be very high. If the nonce data is mostly a match, but one of the nonce factors are different, the level of fraud risk may be moderate, and if most or none of the nonce factors are a match, the level of fraud risk may be low. The level of fraud risk may be proportional to how high a match the nonce data is. A higher match (e.g., greater number of factors that are a match) may correlate to a higher risk of fraud, a lower match may correlate to a lower risk of fraud.
In some embodiment, analysis of the nonce data may relate to a likelihood of a replay attack. Other types of fraud analysis may occur for the transaction. For instance, a fraud analysis may include an assessment of a likelihood of a replay attack, as well as other types of fraudulent attacks (e.g., phishing, man in the middle attacks, etc.). Other data, such as data regarding the user device, user account, transaction data, or any other type of data described elsewhere herein, may be analyzed to detect the various types of fraud. Depending on the fraud analysis, authentication may or may not be confirmed for the user and/or user device. This may optionally permit a transaction to be completed, or delay or deny the transaction.
It should be understood from the foregoing that, while particular implementations have been illustrated and described, various modifications can be made thereto and are contemplated herein. It is also not intended that the invention be limited by the specific examples provided within the specification. While the invention has been described with reference to the aforementioned specification, the descriptions and illustrations of the preferable embodiments herein are not meant to be construed in a limiting sense. Furthermore, it shall be understood that all aspects of the invention are not limited to the specific depictions, configurations or relative proportions set forth herein which depend upon a variety of conditions and variables. Various modifications in form and detail of the embodiments of the invention will be apparent to a person skilled in the art. It is therefore contemplated that the invention shall also cover any such modifications, variations and equivalents.
This application is a continuation application of International Application No. PCT/US2019/047964, filed Aug. 23, 2019, which application claims the priority and benefit of U.S. Provisional Application No. 62/722,629 filed on Aug. 24, 2018, and is a Continuation-in-Part of U.S. application Ser. No. 16/247,835, filed Jan. 15, 2019, which is a Continuation Application of International Patent Application PCT/US2017/044371, filed Jul. 28, 2017, which claims the priority and benefit of U.S. Provisional Application No. 62/368,969 filed on Jul. 29, 2016 the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62722629 | Aug 2018 | US | |
62368969 | Jul 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US2019/047964 | Aug 2019 | US |
Child | 17183303 | US | |
Parent | PCT/US2017/044371 | Jul 2017 | US |
Child | 16247835 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16247835 | Jan 2019 | US |
Child | PCT/US2019/047964 | US |