System and method for device identification and uniqueness

Information

  • Patent Grant
  • 10902327
  • Patent Number
    10,902,327
  • Date Filed
    Wednesday, August 27, 2014
    10 years ago
  • Date Issued
    Tuesday, January 26, 2021
    3 years ago
Abstract
Systems and methods for determining uniqueness of device identifiers are provided are provided. The uniqueness of a device identifier may be indicated by a device quality score or grade that is calculated based on a plurality of parameters associated with a device identifier as well as evaluation rules derived based on historical data. The plurality of parameters may be associated with a network event or transaction associated with the device identifier. The evaluation rules may be derived using machine learning techniques. Based on uniqueness of a device identifier, a suitable action or measure may be taken.
Description
BACKGROUND OF THE INVENTION

With rapid advancement of computer technologies and e-Commerce, people are increasingly reliant on a variety of internet-connected devices for everything from banking to booking travel to shopping. As a service provider, it has become increasingly important to distinguish among the different devices in order to provide detect and prevent online fraud and/or to provide customized content or services.


SUMMARY OF THE INVENTION

System and methods for determining uniqueness of device identifiers are provided. According to an aspect of the invention, a computer-implemented method for determining uniqueness of a device identifier is provided. The method comprises obtaining a plurality of evaluation rules based at least in part on historical data and determining the uniqueness of the device identifier based at least in part on the evaluation rules and a plurality of parameters associated with the device identifier. Obtaining the one or more evaluation rules may include analyzing the historical data using a machine learning technique. Determining the uniqueness of the device identifier may include determining a device quality score associated with the device identifier. Determining the uniqueness of the device identifier may include selecting a subset of the one or more evaluation rules based at least in part on the plurality of parameters and applying the subset of evaluation rules to at least some of the plurality of parameters to obtain the device quality score. The method may further comprise determining a suitable action based at least in part on the uniqueness of the device identifier. Determining the suitable action may include selecting a first action if the device identifier is more likely to be unique and selecting a second action if the device identifier is less likely to be unique.


INCORPORATION BY REFERENCE

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.





BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth with particularity in the appended claims. 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:



FIG. 1 illustrates an example environment for implementing the present invention, in accordance with an embodiment.



FIG. 2a illustrates example components of a device identification system, in accordance with an embodiment.



FIG. 2b illustrates example components of a device identification system, in accordance with another embodiment.



FIG. 3 illustrates example components of a computer device for implementing aspects of the present invention, in accordance with an embodiment.



FIG. 4 illustrates an example process for implementing the present invention, in accordance with an embodiment.



FIG. 5 illustrates an example process for determining the uniqueness of a device identifier, in accordance with an embodiment.



FIG. 6 illustrates an example process for determining the uniqueness of a device identifier, in accordance with an embodiment.



FIG. 7 illustrates an example process for calculating a device quality score, in accordance with an embodiment.



FIG. 8 illustrates an example process for determining the uniqueness of a device identifier, in accordance with an embodiment.





DETAILED DESCRIPTION OF THE INVENTION

According to aspects of the present invention, a device identification system and methods may be provided for determining the uniqueness of device identifiers. Network devices, such as desktops, laptops, tablet computing devices, smart phones, smart TVs, and the like, may be identified using device identifiers. Such device identifiers may be provided or generated by the manufacturers, distributors, developers, or any suitable entity. Examples of device identifier may include Android identifier (ID), iPhone's Unique Identifier (UDID), iPhone's IdentifierForAdvertising (IFA or IDFA), cookie ID, login ID, Internet Protocol (IP) address, media access control (MAC) address, a hash of any of the above, a combination of any of the above, or the like. In some cases, the device identifier may be derived based on one or more hardware and/or software parameters of a device identified by the device identifier. For example, a device identifier may be derived from the IP address, operating system version, and locale setting of the device. In some embodiments, a device identifier may be used to identify the source or origin or a transaction, request, or network event. For example, a device identifier may include a user identifier, an account identifier, and the like. Ideally, a device identifier uniquely identifies a device. In other words, different devices are mapped to different device identifiers, for example, based on unique software/hardware characteristics associated with the devices. However, in some cases, different devices may have the same device identifiers. In some cases, such as in an online fraud, such sharing of device identifiers may be intentional. In some other cases, such sharing of device identifiers may be unintentional.


In some embodiments, a device identifier may be used to distinguish among the entities (e.g., users) associated with the devices identified by the device identifier. For example, a content or service provider may use such device identifiers to distinguish among different users so as to provide customized advertisement or service items tailored to the preferences of the users. However, such targeted user-specific action (e.g., target advertisement delivery) is only effective when there is a high probability that the device identifier is indeed unique, that is, it is very likely that the device identifier is not shared by multiple devices. In some instances, different devices may have the same device identifiers. For example, the Android ID for two Android devices may be the same. For another example, two devices may have the same IP address. As yet another example, devices having similar or different parameters may result in having the same value for their device identifiers. In such cases when the device identifier is not unique, targeted action may not be feasible or desirable. Rather, a different action or approach may be required.


As an example, consider two users Carola and Marley. Carola operates a device 1 to access a shopping website and Marley operates a device 2 to access the same shopping site. Carola is interested in jewelry and art and Marley is interested in cars and technology. The service provider operating the shopping website may be able to deliver different targeted advertisement to Carola and Marley based on their different preferences if the service provider can distinguish the device 1 from device 2. In other words, given a device identifier, if the service provider can be confident that the device identifier is unique, that is, it is unique to a specific device, then the service provider's may be able to provide effective targeted content. On the other hand, if for a given the device identifier, the service provider is not confident that the device identifier is unique (i.e., associated with only with Carola or only with Marley), then it may be undesirable to delivery customized content because it may offend or otherwise alienate the unintended audience of such customized content. Rather, providing more generic content may prove to be more effective in this case.


As another example, a fraud detection engine may be configured to detect fraudulent activities associated of network devices. For a given device identifier associated with fraudulent transactions, if it is likely that the device identifier is unique, it may be desirable to take specific fraud prevention actions with respect to activities associated with the device identifier. For example, the device identifier may be added to a blacklist so that activities associated with the device identifier are blocked. This may be a desirable solution that prevents future fraud without affecting non-rogue devices since it is unlikely that the device identifier is shared by other devices. Conversely, if the device identifier is likely to be non-unique, then put the device identifier into a blacklist may unduly impact legitimate activities of non-rogue devices that happen to share the same device identifier. Rather, a more moderate measure may be taken such as monitoring instead of blocking traffic coming from devices identified by the device identifier.


According to aspects of the present invention, a device identification system and methods may be provided for determining the uniqueness of device identifiers. The device identification system may include an analysis engine, an evaluation engine, and optionally, an action engine (such as illustrated in FIG. 2a below). The analysis engine may be configured to generate, based on historical data, rules that may be used to determine the uniqueness of device identifiers. Specifically, the rules may be used to derive a quality score associated with a given device identifier. Quality score may be a numerical value. For instances, the quality score may be any integer between 0 and 100 (inclusive) where the higher the quality score the more likely that the device identifier is unique. The rules may be stored in a data store which may include a database or a data file (e.g., a JSON file) that is accessible to the evaluation engine.


The evaluation engine may be configured to receive a plurality of parameters associated with a device identifier, select the applicable rules (e.g., based on at least some of the parameters such as the device's operating system or hardware type) and apply the rules to the plurality of parameters to derive a quality score and/or a quality grade. In some cases, the quality grade may be derived based on the quality score. In some embodiments, the plurality of parameters may include any hardware and/or software parameters associated with a device identified by the device identified.


In some embodiments, the plurality of parameters may include deterministic identifiers such as customer ID, login ID, account ID, cookie ID, UDID, Android ID, IFA or IFDA, Identifier For Vendor (IFV), International Mobile Equipment Identity (IMEI), MAC address, IP address, and the like.


In some embodiments, the plurality of parameters may include client and/or server location and/or geographical information; client device trustability score or similar indicator; user lifetime value (LTV) or similar indicator; client device Return on Investment Index (ROlndex) or similar indicator; device metadata such as manufacturer (e.g., Apple, Samsung, Microsoft, Dell, etc), name (e.g., iPhone), model, version, and the like; device operating system (e.g., iOS, Android, Windows Phone, BlackBerry, Mac OS, OS X, Microsoft Windows, Unix, Linux, BSD, etc.); browser metadata such as maker (e.g., Google, Microsoft, Mozilla), name (e.g., Chrome, Internet Explorer, Firefox, Opera, Safari), version, and the like; other software and/or hardware characteristics (e.g., Adobe Flash version); event type such as impression, click or selection, download, page load, and the like; event type detail such as campaign type, transaction type, and the like; customer type and industry; and other parameters.


In typical embodiments, such parameters are obtained without the awareness of the user operating the device. In some cases, some or all of the parameters may be obtained with the user's awareness. In some embodiments, some or all of the parameters may be included in one or more requests or messages provided by the device or by another entity such as a Domain Name System (DNS) server, an Active Directory (AD) server, and the like. Example parameters may include user agent (UA), IP address, user identity, user credentials, network protocol, service endpoint, Hypertext Transfer Protocol (HTTP) method and/or status code, operating system, locale or language code, processor architecture, device type (e.g., desktop, mobile phone, etc.) and the like. In some embodiments, some or all of the parameters discussed herein may be used to derive the device identifier and to derive the quality score or grade. For example, the parameters may be concatenated, combined, appended, hashed, encrypted, and otherwise processed to derive the device identifier and/or quality score or grade. For example, in an embodiment, the device identifier may include a 40-character SHA-1 hash of some of the parameters.


In some embodiments, a set of applicable rules may be selected based at least in part on some of the parameters associated with the device identifier. For example, different sets of rules or the same set of rules may be provided for different types of devices and/or operating systems. For example, a first set of rules may be selected for an Android device whereas a second set of rules may be selected for an iOS device.


In an embodiment, the rules include, for each of at least some of the plurality of parameters, a corresponding value-weight map. In some cases, the rules may include usage rules associated with the value-weight maps that specify how the maps should be applied to the parameter. In other embodiments, such usage rules may be optional. Each of the value-weight maps may include one or more parameter values or value ranges along with corresponding weights. The parameter values may include any of the above-discussed parameters or a derivation thereof. The table below provides an example value-weight map for the user agent parameter:
















Parameter Value
Weight



















8
0.5



10
0.38



12
0.01



. . .
. . .










For the above example, a usage rule associated with the value-weight map may specify that the parameter value to be used to look up the value-weight map is the length of the user agent identifier character string. For example, given a user agent parameter of “UA_2.8.1”, the corresponding parameter value, according to the “UA-length” rule, is 8, the length of the character string “UA_2.8.1” and the corresponding weight is 0.5.


Thus, for at least some of the plurality of parameters associated with the device identifier, corresponding weights may be obtained by applying the rules (e.g., by looking up the corresponding parameter-specific value-weight map as specified by usage rule).


While the value-weight maps illustrated here each corresponds to a specific parameter, in some embodiments, a value-weight map may correspond to more than one parameter. For example, the value used to look up the value-weight map may be derived based on the values of one or more parameters.


In some embodiments, the weights associated with the parameters may be weighted, for example, based on the perceived importance of the parameters. The perceived importance of the parameters may be determined based on statistical analysis of the historical data. For example, in an embodiment, the weight associated with the IP address parameter may be given a larger weight than the weight associated with the user agent parameter.


A quality score indicative of the uniqueness of a device identifier may be derived based on the parameter weights, which may be weighted as discussed above. For example, the device score may be calculated as a linear combination of the weighted weight values. The quality score may be categorized into quality grades. For example, a quality score between 80 and 100 may be categorized as quality grade A, a quality score between 60 and 80 may be categorized as quality grade B, and so on. Thus, device identifiers may be segmented according to their quality grades. In general, a device identifier is considered to be “high quality” if it has a high quality score or grade and “low quality” if it has a low quality score or grade.


In some embodiments, the value-weight maps, usage rules, formula and/or algorithm for calculating the quality scores and the like are collectively referred to as the evaluation rules (or rules). Some or all of such evaluation rules may be derived based on the historical data associated with past user activities and usage of computing resources. In particular, the historical data may be analyzed using statistical analysis and machine learning techniques such as logistical regression. Other suitable data mining techniques may also be used. Such data analysis may be performed by the analysis engine with or without human intervention.


As discussed above, the calculation of the quality scores or grades does not involve analyzing vast amount of historical data. Rather, the calculation is performed based on the rules derived from the historical data. The size of the rules may be significantly smaller than the size of the historical data which the rules are based on. For example, the rules may fit in one or more JSON files whereas the historical data may be stored in large data storage systems. Given the pre-calculated or derived rules, the time and complexity of the quality score/grade calculation (and hence determination of uniqueness of device identifiers) is significantly reduced. In some cases, uniqueness determination may be performed efficiently for a large amount of transactions in a short period of time. As the historical data evolve over time, the rules derived from the historical data may be updated to reflect any changes (e.g., on a periodic basis). By using such updated rules, the quality score/grade calculation also reflects the changes in historical data.


In some embodiments, the device identification system discussed herein may or may not include an action engine. The action engine may be configured to take different actions based on the uniqueness of device identifiers (such as indicated by the quality grades or quality scores). For example, the action engine may be configured to provide more targeted content to devices associated with a high quality device identifier and less targeted content to devices associated with a lower quality device identifier. It shall be understood that different aspects of the invention can be appreciated individually, collectively, or in combination with each other.



FIG. 1 illustrates an example environment 100 for implementing the present invention, in accordance with an embodiment. As illustrated, one or more user devices 102 connect via a network 104 to a device identification system 106 configured to provide device identification functionalities described herein. In various embodiments, the user devices 102 may include any devices capable of communicating with the network 104, such as personal computers, workstations, laptops, smartphones, mobile phones, tablet computing devices, smart TVs, game consoles, internet-connected setup boxes, kitchen appliances and the like. In some embodiments, the user devices 102 may include applications such as web browsers and/or applications (e.g., mobile apps) that are capable of communicating with the device identification system 106 and/or a system that uses the device identification system 106.


In some embodiments, the device identification system 106 may include or be included in one or more computing systems. For example, the device identification system 106 may be a part of a content provider. For example, the device identification system 106 may be a runtime component of a web server of the content server. As another example, the device identification system 106 may be a part of a fraud detection system or service used by an online service provider such as a bank, a merchant, a payment service provider, and the like. In some embodiments, the device identification system may be owned and/or operated by the same or different entity as the content provider.


In some embodiments, the device identification system 106 may be implemented by one or more physical and/or logical computing devices or computer systems that collectively provide the functionalities described herein. For example, aspects of the device identification system 106 may be implemented by a single server or by a plurality of servers (e.g., distributed Hadoop nodes). As another example, aspects of the device identification system 106 may be implemented by one or more processes running on one or more devices. In some embodiments, the device identification system 106 may provide an API such as a web service interface that may be used by users or other processes or services to utilize the functionalities of the device identification system discussed herein.


In some embodiments, the device identification system 106 may comprise one or more computing services provisioned from a “cloud computing” provider, for example, Amazon Elastic Compute Cloud (“Amazon EC2”), provided by Amazon.com, Inc. of Seattle, Wash.; Sun Cloud Compute Utility, provided by Sun Microsystems, Inc. of Santa Clara, Calif.; Windows Azure, provided by Microsoft Corporation of Redmond, Wash., and the like.


In some embodiments, the device identification system 106 may communicate with a data store 108 in order to perform the functionalities described herein. For example, the data store 108 may be used to store historical data, evaluation rules, and the like.


In some embodiments, the data store 108, or any other data stores discussed herein, may include one or more data files, databases (e.g., SQL database), data storage devices (e.g., tape, hard disk, solid-state drive), data storage servers, or the like. In various embodiments, such a data store 108 may be connected to the device identification system 106 locally or remotely via a network. In some embodiments, data store 108, or any other data stores discussed herein, may comprise one or more storage services provisioned from a “cloud storage” provider, for example, Amazon Simple Storage Service (“Amazon S3”), provided by Amazon.com, Inc. of Seattle, Wash., Google Cloud Storage, provided by Google, Inc. of Mountain View, Calif., and the like.


In various embodiments, the network 104 may include the Internet, a local area network (“LAN”), a wide area network (“WAN”), a cellular network, wireless network or any other public or private data and/or telecommunication network.



FIG. 2a illustrates example components of a device identification system 200A, in accordance with an embodiment. The device identification system 200A may be similar to the device identification system 106 discussed in FIG. 1. In various embodiments, the device identification system 200A may include one or more components that individually or collectively provide a set of functionalities. Each component may be implemented by one or more physical and/or logical computing devices, such as computers, data storage devices and the like. Some or all of the components may be co-located on the same device or distributed on different devices. The components may communicate with each other or with external entities such as other systems, devices or users. It will be appreciated by those of ordinary skill in the art that various embodiments may have fewer or a greater number of components or subcomponents than those illustrated in FIG. 2a. Thus, the depiction of the environment in FIG. 2a or in other figures should be taken as being illustrative in nature and not limiting to the scope of the disclosure.


In the illustrated embodiment, the device identification system 200A includes an analysis engine 202, evaluation engine 204 and an action engine 206. In some other embodiments, the device identification system 200A may include a subset or a superset of the illustrated components. For example, in an embodiment, the device identification system may include only the evaluation engine. In another embodiment, the device identification system may include only the analysis engine and the evaluation engine. In some embodiments, some or all of the components discussed herein may be combined or further divided into subcomponents. Some or all of the components may be implemented by the provider of the system or by a third party service provider.


The analysis engine 202 may be configured to generate, based on historical data 201, evaluation rules or rules 208 that may be used to determine the uniqueness of device identifiers. Specifically, the rules may be used, for example, by the evaluation engine 204, to derive a quality score or grade 210 associated with a given device identifier. Such rules may be derived based on historical data obtained from many user devices and many transactions. Various techniques may be used to derive the rules including machine learning techniques, neural networks, fuzzy logic, statistical analysis (e.g., logistical regression), and the like. Rules may be generated automatically with aid of a processor. Human intervention may or may not be required for generating the rules.


The historical data may include data (including statistics) related to past user activities, transactions, requests, responses, usage of computing resources and the like. In some cases, the historical data may include information indicative of reliability, trustworthiness or uniqueness of user devices. For example, the historical data may indicate that a certain IP address or a certain operating system is susceptible to security problems (e.g., virus, Denial of Service (DoS) attack, session hijacking, Man-in-the-Middle (MITM) or Man-in-the-Browser (MITB) attacks, etc.). As another example, the historical data may indicate that certain types of devices tend to share the same device identifiers.


The evaluation engine 204 may be configured to determine uniqueness of a device identifier based on evaluation rules 208, discussed above. To that end, the evaluation engine 204 may be configured to obtain device data 205 associated with a device. In some embodiments, the device data may include a plurality of parameters associated with or used to derive a device identifier. In some cases, device data may include the device identifier itself. The plurality of parameters may include any hardware and/or software parameters associated with a device identified by the device identified such user agent identifier, IP address, user identity information, user credentials, network protocols, service endpoint, service method, HTTP method and/or status code, operating system, locale or language code, processor architecture, device type (e.g., desktop, mobile phone, etc.) and the like. In some embodiments, the plurality of parameters may be associated with a particular transaction or network event.


Based at least in part on the plurality of parameters (e.g., device type), the evaluation engine 204 may be configured to select and apply some or all of the evaluation rules 208 made available by the analysis engine 202. In some embodiments, the evaluation rules may be stored in a data store or data file that is made available to the evaluation engine 204. The evaluation rules may be applied to at least some of the parameters to derive a device quality score or grade using methods discussed herein.


In some embodiments, the rules may be used to determine quality score and/or quality grade without requiring access to historical data. Such determination may be performed, for example, by the evaluation engine. Such a rules-only approach may be beneficial. For example, in some cases, the historical data may include sensitive or personally identifying information such as credit card information. In such cases, it may be undesirable to allow certain entities to have access to the historical data, for example, for privacy concerns.


The device quality score or grade may be used by the action engine 206 to determine an action 207. In various embodiments, the action engine may include or be included in one or more web servers, data servers, security and/or fraud detection servers and the like. The action may include retrieval, storage, processing, modification, transmission, or the like, of one or more responses to a request, internal or external messages or instructions, content data, and the like. In some cases, device identification system discussed herein may be used to detect fraudulent and/or malicious attacks such as session hijacking, MITM/MITB attacks, harvesting P2P networks, and the like. In some cases, device identification system may be used to determine suitable content (e.g., advertisement) to provide.


In some embodiments, analysis engine, the evaluation engine and the action engine may reside on the same or different computing devices and may each be implemented by one or more computing devices or processes. In some embodiments, the rules, the device quality scores or grades, and/or the actions may be generated in real or nearly real time as the data is coming in, or in an asynchronous fashion such as in using batch processing. In some embodiments, the generation of rules and the evaluation of the uniqueness of device identifiers can be independent from each other. The rules may be generated and/or updated at a different time schedule than that for the evaluation of the device identifiers. For example, in an embodiment, the rules are generated ahead of time and updated on a periodic basis. Independently or asynchronously to the generation and/or update of rules, device identifiers may be evaluated in real or nearly real time using the rules.


In some embodiments, analysis engine, the evaluation engine and the action engine may be configured to provide the various functionalities discussed herein in a synchronous or asynchronous fashion. For example, the generation of rules may be performed offline, in an asynchronous fashion. The evaluation of device quality score or grade may be performed in real time or nearly real time as the device data is received. The determining of a suitable action based on the device score and/or grade may be performed in real time or nearly real time.



FIG. 2b illustrates example components of a device identification system 200B, in accordance with another embodiment. In this example, the device identification system 200B includes a data collector 214 residing on a user or client device 212. The data collector may be implemented as a browser script using JavaScript or any other scripting language. The data collector may be configured to communicate with a device identification service 216. For example, the data collector may be configured to collect parameter information about the user device such as discussed herein and transmit such parameter information to the device identification service 216, for example, using an API provided by the device identification service. In some embodiments, the collection and/or communication with the device identification service may be triggered by an event such as a browser event. For example, the event may include a click on a portion (e.g., a button or a link) of a web page, loading of a web page and the like.


The device identification system 200B includes a device identification service 216 that may be implemented as a web service. The device identification service 216 may be implemented by one or more servers. The servers implementing the device identification service 216 may be owned and/or provided by a content or service provider for the user device (e.g., banking, ecommerce, retail) or by the provider of the device identification system 200B.


In some embodiments, the device identification service 216 may be configured to receive parameter information provided by the data collector of the user device and to provide a device identifier and/or device quality score or grade based on the parameter information. To that end, the device identification service 216 may utilize an evaluation engine 218. The evaluation engine 218 may be configured to calculate a device identifier and/or a device quality score or grade based on the parameter information. In some embodiments, the evaluation engine 218 may be implemented using one or more server-side library files.


In some embodiments, some or all of the parameters may be used to derive the device identifier. For example, the parameters may be concatenated, combined, appended, hashed, encrypted, and otherwise processed. For example, in an embodiment, the device identifier may include a 40-character SHA-1 hash.


In some embodiments, the device quality score or grade may be evaluated based on some or all of the parameters. For example, a lookup table (e.g., stored in memory) may be used to determine the weight values associated with some or all of the parameters. The weight values may or may not be further weighted, combined or otherwise processed to derive a final device quality score or grade. The device quality score may be categorized into a device quality grade. In some embodiments, the lookup table and the algorithm for deriving the quality score or grade may be included on one or more rules that are pre-determined based on historical data such as past transactions and/or user activities related to one or more websites or web services. Thus, access to the actual historical data may not be required for the evaluation of the quality scores or grades. In some embodiments, the generation of the device identifiers and/or the associated device quality scores and/or grades may be performed in real time or nearly real time with respect to the receipt of the parameter information. In other embodiments, any or all of the above operations may be performed in an asynchronous mode, for example, using batch processing.


In some embodiments, the generated device identifier and associated device quality score and/or grade may be stored in a data store 220. The data store 220 may include a user ID map (not shown) or a similar data structure configured to store a mapping between device identifiers and device quality scores and/or grades. In some embodiments, the data store 220 may include a memory of a server, one or more data storage device (e.g., SSD, hard disk, taps), or a cloud-based storage service such as discussed in connection with FIG. 1. The data store 220 may or may not be owned and/or operated by the same as the provider of the device identification service 216. For example, the user ID map may be stored at least in part on a customer server and/or a fraud-detection system.


In some embodiments, the storing of the device identifiers and/or the associated device quality scores and/or grades may be performed in real time or nearly real time as the above information is generated. In other embodiments, any or all of the above operations may be performed in an asynchronous mode, for example, using batch processing.


In various embodiments, the user ID map may be used by any suitable entity for any suitable purpose. For example, in an embodiment, the user ID map may be used by a content provider to determine the type of content to provide to a user device. More targeted content (e.g., advertisement) may be provided for device identifiers with higher quality grades and less targeted content may be provided for device identifiers with lower quality grades. In another embodiment, the user ID map may be used by a fraud detection system to detect and/or prevent online fraud.


In some embodiments, the user ID map may be used to update and/or refine the evaluation rules (e.g., including weight lookup table, device score computation algorithm) discussed herein. For example, the user ID map may be provided for research purposes. The research may be performed by a provider of the device identification system or a third party service provider.



FIG. 3 illustrates example components of a computer device 300 for implementing aspects of the present invention, in accordance with an embodiment. In another embodiment, the computer device 300 may be configured to implement a user device such as a user device 102 discussed in connection with FIG. 1 and/or components or aspects of the device identification system such as described in connection with FIGS. 1 and 2. In some embodiments, computing device 300 may include many more components than those shown in FIG. 3. However, it is not necessary that all of these components be shown in order to disclose an illustrative embodiment.


As shown in FIG. 3, computing device 300 includes a network interface 302 for connecting to a network such as discussed above. In various embodiments, the computing device 300 may include one or more network interfaces 302 for communicating with one or more types of networks such as the Internet, wireless networks, cellular networks, and any other network.


In an embodiment, computing device 300 also includes one or more processing units 304, a memory 306, and an optional display 308, all interconnected along with the network interface 302 via a bus 310. The processing unit(s) 304 may be capable of executing one or more methods or routines stored in the memory 306. The display 308 may be configured to provide a graphical user interface to a user operating the computing device 300 for receiving user input, displaying output, and/or executing applications. In some cases, such as when the computing device 300 is a server, the display 308 may be optional.


The memory 306 may generally comprise a random access memory (“RAM”), a read only memory (“ROM”), and/or a permanent mass storage device, such as a disk drive. The memory 306 may store program code for an operating system 312, one or more device identification routines 314, and other routines. In various embodiments, the program code may be stored on a computer-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors. The computer-readable storage medium may be non-transitory. The one or more device identification routines 314, when executed, may provide various functionalities associated with the device identification system as described herein.


In some embodiments, the software components discussed above may be loaded into memory 306 using a drive mechanism associated with a non-transient computer readable storage medium 318, such as a floppy disc, tape, DVD/CD-ROM drive, memory card, USB flash drive, solid state drive (SSD) or the like. In other embodiments, the software components may alternatively be loaded via the network interface 302, rather than via a non-transient computer readable storage medium 318. In an embodiment, the computing device 300 also include an optional time keeping device (not shown) for keeping track of the timing of transactions or network events.


In some embodiments, the computing device 300 also communicates via bus 310 with one or more local or remote databases or data stores such as an online data storage system via the bus 310 or the network interface 302. The bus 310 may comprise a storage area network (“SAN”), a high-speed serial bus, and/or via other suitable communication technology. In some embodiments, such databases or data stores may be integrated as part of the computing device 300.



FIG. 4 illustrates an example process 400 for implementing the present invention, in accordance with an embodiment. Aspects of the process 400 may be performed, for example, by a device identification system such as discussed in connection with FIGS. 1 and 2 or one or more computing devices such as discussed in connection with FIG. 3. Some or all aspects of the process 400 (or any other processes described herein, or variations and/or combinations thereof) may be performed under the control of one or more computer/control systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs or one or more applications) executing collectively on one or more processors, by hardware or combinations thereof. The code may be stored on a computer-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors. The computer-readable storage medium may be non-transitory. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be combined in any order and/or in parallel to implement the processes.


In an embodiment, the process 400 includes obtaining 402 a set of rules based on historical data. In various embodiments, the rules may include the evaluation rules, discussed herein, that may be used to determine the uniqueness of a device identifier. For example, the rules may include one or more parameter maps that map parameter values (original or derived) to weight values. The rules may further include formulas, algorithms, and the like for using the maps to (e.g., combining the weight values) to derive a device quality score and/or device quality grade. Such a device quality score or grade may be indicative of the uniqueness of the device identifier. In a typical embodiment, the size of the rules is a fraction of the amount of the historical data based on which the rules are derived.


As discussed above, historical data may include any data related to past data transactions, user activities, usage of computing and network resources and the like. In some cases, the historical data may include information indicative of reliability, trustworthiness or uniqueness of user devices or device identifiers. In some embodiments, the historical data may be obtained from a third-party data or service provider and/or accumulated by a provider of the device identification system. For example, historical data may include interactions with content providers, ecommerce or online retail service providers, banking, credit card, or financial service providers, airlines, travel service providers, and the like.


In some embodiments, the rules may be generated using a variety of machine learning and/or data mining techniques such as statistical analysis, neural networks, and the like. In one embodiment, some of the rules may be defined or specified by humans. In some embodiments, some of the rules may be generated from scratch or provided by a third-party provider.


In an embodiment, the process 400 includes determining 404 the uniqueness of a device identifier based on the rules discussed above and a plurality of parameters associated with the device identifier. In some embodiments, a device identifier may be used to identify the source or origin or a transaction, request, or network event. In some embodiments, a device identifier may be determined and/or derived based on any one or combination of one or more parameters such as described herein. For example, the device identifier may be based on one or more hardware and/or software settings or attributes of a device. For example, a device identifier may include or be based on an IP address associated with an HTTP request. As another example, a device identifier may include or be based on a username associated with an online account and a user agent identifier. The device identifier may include a device fingerprint without regard to user information. In one embodiment, the device identifier may be independent from the parameters described herein. In a typical embodiment, a device identifier is obtained or derived without the awareness of the originator of the transaction or network event identified by the device identifier. In other embodiments, the device identifier may be obtained with user awareness.


In various embodiments, a plurality of parameters such as those discussed herein may be obtained in connection with the device identifier. Such parameters may be obtained from the transaction or network event identified by the device identifier. Such parameters may be obtained, for example, by analyzing the metadata and/or data associated with a request, parsing a network log file, utilizing any suitable web analytics tools, and the like. In a typical embodiment, such parameters are obtained without user awareness. In some embodiments, such parameters may be collected with user awareness. In some embodiments, the device identifier and/or parameters may be obtained without downloading anything to the device (i.e., using a tag-free technique) or by downloading something (e.g., a cookie or browser script) to the device.


Based on the rules and the plurality of parameters, uniqueness of the device identifier may be determined. In some embodiments, the uniqueness of the device identifier may be represented by a device quality score or grade discussed herein. In other embodiments, the uniqueness of the device identifier may be represented by any other suitable representations. More details for determining the uniqueness of a device identifier are discussed below in connection with FIGS. 5-7.


In an embodiment, the process 400 includes determining 406 a suitable action or measure to take based on the uniqueness of the device identifier. Such action may be selected among a plurality of actions based on a determined device quality score or quality grade for the device identifier. For example, different action(s) may be taken if the device identifier is more unique than if the device identifier is less unique, or if the quality score or grade is different. The action may include an active action such as the retrieval, storage, processing, modification, transmission, or the like, of one or more responses, messages, instructions, and the like. In an embodiment, the action may include not doing something. In some embodiments, determining the suitable action may include comparing the device quality score or grade with a predefined threshold value and selecting the suitable action based on the result of the comparison. For example, if a device identifier is determined to be more likely to be unique (e.g., having a quality score or grade higher than a predefined threshold value), then a more targeted advertisement may be provided. Conversely, if a device identifier is determined to be less likely to be unique (e.g., having a quality score or grade equal or less than the predefined threshold value), then a less targeted advertisement may be provided. Similarly, a more severe or drastic security or anti-fraud measure (e.g., adding the device identifier to a blacklist) may be taken if a device identifier is determined to be more likely to be unique. On the other hand, a more moderate security measure may be taken if a device identifier is determined to be less likely to be unique.


In some embodiments, step 402 may be performed on a periodic basis (e.g., daily, weekly, monthly). In some embodiments, steps 404 and 406 may be performed for each of a plurality of transactions in real or nearly real time or in an asynchronous fashion (i.e., not in real or nearly real time).



FIG. 5 illustrates an example process 500 for determining the uniqueness of a device identifier, in accordance with an embodiment. Aspects of the process 500 may be performed, for example, by the evaluation engine discussed in connection with FIG. 2a or 2b.


In an embodiment, the process 500 includes obtaining 502 a set of evaluation rules based on historical data. As discussed above, such rules may be made available via a data file, data storage system, web service, or any other suitable interface. In various embodiments, the rules may be made available via the push or pull technologies or a combination of both. In some embodiments, once the set of rules are obtained, they can be used to evaluate the uniqueness of one or more (e.g., hundreds or thousands of) device identifiers. In some embodiments, the rules may be updated occasionally (e.g., on a periodic basis).


In an embodiment, the process 500 includes obtaining 404 a plurality of parameters associated with a device identifier. The device identifier may be associated with a device, a group of devices, a transaction, a user, an organization or any other entity. The plurality of parameters may be obtained from the device identifier itself, from the entity associated with the device identifier, from log files, from real-time analysis of network traffic, or from other channels using any suitable method.


Based on the rules and the plurality of parameters, the uniqueness of the device identifier may be determined 506, for example, using the process discussed below in connection with FIGS. 6-7.



FIG. 6 illustrates an example process 600 for determining the uniqueness of a device identifier, in accordance with an embodiment. Aspects of the process 600 may be performed, for example, by the evaluation engine discussed in connection with FIG. 2a or 2b.


In an embodiment, the process 600 includes obtaining 602 a plurality of parameters associated with a device identifier. In some embodiments, step 602 may be similar to step 504 discussed in connection with process 500 of FIG. 5.


In an embodiment, the process 600 includes selecting 604 applicable rules based on the plurality of parameters. The selection may be based on one, two or more of the plurality of parameters obtained above. For example, different sets of rules may be applicable to different sets of parameters. As another example, the applicable set of rules may be dictated by a subset of the plurality of parameters such as whether the device identifier is associated with a desktop or a mobile device, the operating system or processor architecture associated with the device identifier and the like.


In an embodiment, the process 600 includes applying the selected rules to determine 606 a plurality of weight values respectively associated with at least some of the plurality of parameters. For example, for each parameter value associated with a given parameter, a value-weight map may be used to look up a corresponding weight value. The value-weight map may be stored as a lookup table or similar data structure in memory or in another data storage medium. The value-weight map(s) may or may not be part of the rules obtained in step 604. The weight values may be used to obtain 608 a device quality score. In some embodiments, weight values may be further weighted before being combined to derive the device quality score. For example, the device quality score may include a linear combination of the weighted weight values. The formula or algorithm for combining the weight values may or may not be part of the rules obtained in step 604. The quality score may be represented by numeric value. The numeric value may fall within a predetermined numerical range. In general, a higher quality score indicates a higher likelihood that a device identifier is unique and vice versa.


In some embodiments, the quality score may be used to derive 610 a quality grade, such as grade A, B, C and so on. For example, a quality score between 80 and 100 may be categorized as quality grade A, a quality score between 60 and 80 may be categorized as quality grade B, and so on. The quality grade may be represented by numeric or non-numeric values. In some embodiments, the step 610 of deriving a quality grade may be optional.



FIG. 7 illustrates an example process 700 for calculating a device quality score, in accordance with an embodiment. The process 700 may be similar to the process 600 described above in connection with FIG. 6.


The illustrated process may be used to calculate the quality score associated with a transaction or network event 702 that is identified by a device identifier (not shown). A plurality of parameters may be associated with the network event, such as user agent identifier 704, IP address 706, language code 708, and the like. For each of the plurality of parameters, a weight value may be obtained based on a corresponding value-weight map. For example, the value-weight maps 716, 718, 720 may correspond respectively to the parameters 704, 706 and 708. In some embodiments, the parameter values may be transformed or otherwise used to obtain the parameter value used to look up the value-weight map, for example, according to parameter-specific usage rules 710, 712 and 714. For example, the length of the character string of a user agent identifier is to be calculated and used as the parameter value to look up the user agent value-weight map 716, according to rule 710. For example, a user agent identifier “UA_2.8.1” has a character length of 8 and a weight value of 0.5 according to the user agent value-weight map 716. For IP addresses, no transformation may be necessary and the original IP address may be used to look up the IP address value-weight map 618, according to rule 712. For example, an IP address “310.31.345” has an exact match in the IP address value-weight map 718 with a weight value of 0.4. And for language codes, the number of word count may be used to look up the language value-weight map 720, according to rule 714. For example, a language “Fr-fr” has a word count of 2 and a weight value of 0.02 according to the language value-weight map 720.


Once the weight values are obtained, they may be combined to derive the device quality score, for example, according to a formula and/or algorithm 722 to derive the final quality score 724. As discussed above, the weight values may be further weighted (e.g., according to the relative significance of the parameters) before they are combined. In some embodiments, the quality score may be normalized, for example, using a coefficient. Any suitable methods of normalization may be used to normalize the quality score.


In various embodiments, the usage rules, value-weight maps, formula or algorithm discussed above may collectively comprise the evaluation rules discussed herein. Such evaluation rules may be derived once based on historical data and used repeatedly to quickly calculate quality scores for many device identifiers. The evaluation rules may be updated, for example, on a periodic basis, as the historical data evolves.



FIG. 8 illustrates an example process 800 for determining the uniqueness of a device identifier, in accordance with an embodiment. Aspects of the process 800 may be performed, for example, by the device identification system discussed in connection with FIG. 2a or 2b.


In an embodiment, process 800 includes detecting 802 a network event such as a browser event (e.g., clicking of a control, scrolling, resizing, loading or closing of a web page, and the like). Such detection may be implemented by a browser script (e.g., JavaScript).


In an embodiment, in response to the detected network event, a plurality of parameters related to the device associated with the network event is obtained 804. Based on some or all of the obtained plurality of parameters, a device identifier and a device quality grade may be determined 806. Such determination may be further based on pre-calculated rules derived from historical data. The rules may be embodied by the value-weight map/lookup table discussed herein. Finally, the device identifier and the device quality grade may be stored 808, such as in a data store 220 discussed in connection with FIG. 2b. In some embodiments, storage 808 step may be optional and the device identifier and device quality grade may be used directly without being stored first.


In some embodiments, the present invention separates the calculation of rules based on historical data from the use of the rules to derive device identifier and/or device quality score or grade associated with the device identifier. Such separation serves to limit the access to the historical data alleviating concerns with respect to the privacy of the historical data. The separation also allows fast, real-time or nearly real time, and scalable determination of device identifiers and/or device quality scores and/or grades. Additionally, in some embodiments, the rules may be stored at a central location, making it easy to maintain and update the rules independently from the uses of the rules.


While preferred embodiments of the present 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. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.

Claims
  • 1. A computer-implemented method for automated selection of an electronic security action based on a uniqueness assessment of a device identifier, said computer-implemented method under the control of one or more computer systems configured with executable instructions and comprising: establishing an electronic connection with one or more databases storing at least: a plurality of evaluation rules; anda predetermined threshold associated with a range of quality scores, wherein the predetermined threshold is associated with a predetermined threshold value;detecting a first online session between a computer system and a first user device;detecting a network event during the first online session;receiving device data associated with the first user device, wherein the device data is captured during the first online session and comprises a plurality of parameters comprising a first parameter and a second parameter, and wherein the plurality of parameters are associated with the network event;determining a first device identifier associated with the first user device based at least in part on the plurality of parameters;receiving a first plurality of evaluation rules from the one or more databases, wherein the first plurality of evaluation rules are selected based at least in part on a value of the first parameter;determining, based at least in part on the first plurality of evaluation rules and values of the plurality of parameters, a plurality of weight values, wherein the plurality of weight values are associated with the plurality of parameters;calculating, based at least in part on the plurality of weight values, a first quality score associated with the first device identifier;receiving an electronic indication that the first online session is likely fraudulent;accessing the predetermined threshold from the one or more databases;comparing the first quality score with the predetermined threshold value;determining that the first quality score satisfies the predetermined threshold, wherein the determination that the first quality score satisfies the predetermined threshold indicates that the first device identifier is not shared by multiple devices; andbased at least in part on the determination that the first quality score satisfies the predetermined threshold, adding the first device identifier to a blacklist such that network traffic from any devices with an association to the first device identifier are blocked.
  • 2. The computer-implemented method of claim 1, wherein the plurality of evaluation rules are generated using a machine learning technique, wherein the machine learning technique comprises a neutral network or a statistical analysis of historical data comprising device fingerprints and indication of whether such fingerprints uniquely identify a device.
  • 3. The computer-implemented method of claim 2, wherein the calculating the first quality score is performed without access to the historical data.
  • 4. The computer-implemented method of claim 2, wherein the plurality of evaluation rules is updated periodically based at least in part on changes of the historical data.
  • 5. The computer-implemented method of claim 1, wherein: the plurality of weight values comprises: a first weight value associated with the first parameter; anda second weight value associated with the second parameter;the first weight value is determined based at least in part on a first weight-value map and the value of the first parameter; andthe second weight value is determined based at least in part on a second weight-value map and a value of the second parameter.
  • 6. The computer-implemented method of claim 5, wherein: the plurality of evaluation rules comprises a first evaluation rule and a second evaluation rule;the first evaluation rule is associated with the first parameter and the first weight-value map; andthe second evaluation rule is associated with the second parameter and the second weight-value map.
  • 7. The computer-implemented method of claim 1 further comprising: based at least in part on the determination that the first quality score satisfies the predetermined threshold, transmitting a targeted content to the devices with an association to the first device identifier, wherein the targeted content is customized based at least in part on the device data associated with the first user device.
  • 8. The computer-implemented method of claim 1 further comprising: determining that the first quality score does not satisfy the predetermined threshold, wherein the determination that the first quality score does not satisfy the predetermined threshold indicates that the first device identifier is shared by multiple devices; andbased at least in part on the determination that the first quality score does not satisfy the predetermined threshold, monitoring network traffic from the devices with an association to the first device identifier.
  • 9. A computer system for automatically selecting an electronic security action based on a uniqueness assessment of a device identifier, the system comprising: one or more processors; anda memory, including instructions executable by the one or more processors to cause the computer system to at least: establish an electronic connection with one or more database storing at least: a plurality of evaluation rules; anda predetermined threshold associated with a range of quality scores, wherein the predetermined threshold is associated with a predetermined threshold value;detect a first online session between a computer system and a first user device;detect a network event during the first online session;receive device data associated with the first user device, wherein the device data is captured during the first online session and comprises a plurality of parameters comprising a first parameter and a second parameter, and wherein the plurality of parameters are associated with the network event;determine a first device identifier associated with the first user device based at least in part on the plurality of parameters;receive a first plurality of evaluation rules from the one or more databases, wherein the first plurality of evaluation rules are selected based at least in part on a value of the first parameter;determine, based at least in part on the first plurality of evaluation rules and values of the plurality of parameters, a plurality of weight values, wherein the plurality of weight values are associated with the plurality of parameters;calculate, based at least in part on the plurality of weight values, a first quality score associated with the first device identifier;receive an electronic indication that the first online session is likely fraudulent;access the predetermined threshold from the one or more databases;compare the first quality score with the predetermined threshold value;determine that the first quality score satisfies the predetermined threshold, wherein the determination that the first quality score satisfies the predetermined threshold indicates that the first device identifier is not shared by multiple devices; andbased at least in part on the determination that the first quality score satisfies the predetermined threshold, add the first device identifier to a blacklist such that network traffic from any devices with an association to the first device identifier are blocked.
  • 10. The system of claim 9, wherein the plurality of evaluation rules are generated using a machine learning technique, wherein the machine learning technique comprises a neutral network or a statistical analysis of historical data comprising device fingerprints and indication of whether such fingerprints uniquely identify a device.
  • 11. The system of claim 10, wherein the plurality of evaluation rules is updated periodically based at least in part on changes of the historical data.
  • 12. The system of claim 10, wherein the first quality score is calculated without access to the historical data.
  • 13. The system of claim 9, wherein the instructions executable by the one or more processors further cause the computer system to: based at least in part on the determination that the first quality score satisfies the predetermined threshold, transmit a targeted content to the devices with an association to the first device identifier, wherein the targeted content is customized based at least in part on the device data associated with the first user device.
  • 14. The system of claim 9, the instructions executable by the one or more processors further cause the computer system to: determine that the first quality score does not satisfy the predetermined threshold, wherein the determination that the first quality score does not satisfy the predetermined threshold indicates that the first device identifier is shared by multiple devices; andbased at least in part on the determination that the first quality score does not satisfy the predetermined threshold, monitor network traffic from the devices with an association to the first device identifier.
  • 15. A non-transitory computer storage having stored thereon a computer program, the computer program including executable instructions that instruct a computer system to at least: establish an electronic connection with one or more databases storing at least: a plurality of evaluation rules; anda predetermined threshold associated with a range of quality scores, wherein the predetermined threshold is associated with a predetermined threshold value;detect a first online session between a computer system and a first user device;detect a network event during the first online session;receive device data associated with the first user device, wherein the device data is captured during the first online session and comprises a plurality of parameters comprising a first parameter and a second parameter, and wherein the plurality of parameters are associated with the network event;determine a first device identifier associated with the first user device based at least in part on the plurality of parameters;receive a first plurality of evaluation rules from the one or more databases, wherein the first plurality of evaluation rules are selected based at least in part on a value of the first parameter;determine, based at least in part on the first plurality of evaluation rules and values of the plurality of parameters, a plurality of weight values, wherein the plurality of weight values are associated with the plurality of parameters;calculate, based at least in part on the plurality of weight values, a first quality score associated with the first device identifier;receive an electronic indication that the first online session is likely fraudulent;access the predetermined threshold from the one or more databases;compare the first quality score with the predetermined threshold value;determine that the first quality score satisfies the predetermined threshold, wherein the determination that the first quality score satisfies the predetermined threshold indicates that the first device identifier is not shared by multiple devices; andbased at least in part on the determination that the first quality score satisfies the predetermined threshold, add the first device identifier to a blacklist such that network traffic from any devices with an association to the first device identifier are blocked.
  • 16. The non-transitory computer storage of claim 15, wherein the plurality of evaluation rules are generated using a machine learning technique, wherein the machine learning technique comprises a neutral network or a statistical analysis of historical data comprising device fingerprints and indication of whether such fingerprints uniquely identify a device.
  • 17. The non-transitory computer storage of claim 16, wherein the plurality of evaluation rules is updated periodically based at least in part on changes of the historical data.
  • 18. The non-transitory computer storage of claim 16, wherein the first quality score is calculated without access to the historical data.
  • 19. The non-transitory computer storage of claim 15, wherein the executable instructions further instruct the computer system to: based at least in part on the determination that the first quality score satisfies the predetermined threshold, transmit a targeted content to the devices with an association to the first device identifier, wherein the targeted content is customized based at least in part on the device data associated with the first user device.
  • 20. The non-transitory computer storage of claim 15, wherein the executable instructions further instruct the computer system to: determine that the first quality score does not satisfy the predetermined threshold, wherein the determination that the first quality score does not satisfy the predetermined threshold indicates that the first device identifier is shared by multiple devices; andbased at least in part on the determination that the first quality score does not satisfy the predetermined threshold, monitor network traffic from the devices with an association to the first device identifier.
CROSS-REFERENCE

This application claims the benefit of U.S. Provisional Application No. 61/872,287, filed Aug. 30, 2013, which application is incorporated herein by reference.

US Referenced Citations (741)
Number Name Date Kind
4805222 Young et al. Feb 1989 A
4912761 Tan et al. Mar 1990 A
4924387 Jeppesen May 1990 A
5184849 Taylor Feb 1993 A
5491735 Hsieh Feb 1996 A
5519827 Mizushima May 1996 A
5521907 Ennis, Jr. May 1996 A
5557686 Brown et al. Sep 1996 A
5583380 Larsen et al. Dec 1996 A
5627886 Bowman May 1997 A
5679940 Templeton et al. Oct 1997 A
5721765 Smith Feb 1998 A
5724424 Giffor Mar 1998 A
5748740 Curry et al. May 1998 A
5748780 Stolfo et al. May 1998 A
5764275 Lappington et al. Jun 1998 A
5802156 Felger Sep 1998 A
5819226 Gopinathan et al. Oct 1998 A
5864620 Pettitt Jan 1999 A
5884289 Anderson et al. Mar 1999 A
5886334 D'Entremont Mar 1999 A
5892900 Ginter et al. Apr 1999 A
5894510 Felger Apr 1999 A
5899980 Wilf et al. May 1999 A
5903646 Rackman May 1999 A
5903721 Sixtus May 1999 A
5933480 Felger Aug 1999 A
5960069 Felger Sep 1999 A
6009523 Owaki et al. Dec 1999 A
6029154 Pettitt Feb 2000 A
6029159 Zorba et al. Feb 2000 A
6062474 Kroll May 2000 A
6078907 Lamm Jun 2000 A
6092053 Boesch et al. Jul 2000 A
6094643 Anderson et al. Jul 2000 A
6105012 Chang et al. Aug 2000 A
6112240 Pogue et al. Aug 2000 A
6148407 Aucsmith Nov 2000 A
6151593 Cho et al. Nov 2000 A
6163604 Baulier et al. Dec 2000 A
6163771 Walker et al. Dec 2000 A
6164528 Hills et al. Dec 2000 A
6205436 Rosenberg et al. Mar 2001 B1
6209104 Jalili Mar 2001 B1
6216153 Vortriede Apr 2001 B1
6223289 Wall et al. Apr 2001 B1
6282276 Felger Aug 2001 B1
6295605 Dockter et al. Sep 2001 B1
6327384 Hirao et al. Dec 2001 B1
6330546 Gopinathan et al. Dec 2001 B1
6370648 Diep Apr 2002 B1
6405922 Kroll Jun 2002 B1
6442529 Krishan et al. Aug 2002 B1
6442692 Zilberman Aug 2002 B1
6457021 Berkowitz et al. Sep 2002 B1
6480710 Laybourn et al. Nov 2002 B1
6509847 Anderson Jan 2003 B1
6523019 Borthwick Feb 2003 B1
6546493 Magdych et al. Apr 2003 B1
6553108 Felger Apr 2003 B1
6560455 Amin et al. May 2003 B2
6567099 Dawson May 2003 B1
6597775 Lawyer et al. Jul 2003 B2
6646765 Barker et al. Nov 2003 B1
6678666 Boulware Jan 2004 B1
6687390 Avni et al. Feb 2004 B2
6687696 Hofmann et al. Feb 2004 B2
6689055 Mullen et al. Feb 2004 B1
6718363 Ponte Apr 2004 B1
6745333 Thomsen Jun 2004 B1
6803920 Gossett et al. Oct 2004 B2
6804624 Silverman Oct 2004 B2
6850606 Lawyer et al. Feb 2005 B2
6892307 Wood et al. May 2005 B1
6895507 Tepler May 2005 B1
6895514 Kermani May 2005 B1
6898709 Teppler May 2005 B1
6908030 Rajasekaran et al. Jun 2005 B2
6937569 Sarkar et al. Aug 2005 B1
6947978 Huffman Sep 2005 B2
6954532 Handley et al. Oct 2005 B1
6957185 Labaton Oct 2005 B1
6957339 Shinzaki Oct 2005 B2
7002712 Barker et al. Feb 2006 B2
7003670 Heaven et al. Feb 2006 B2
7007174 Wheeler et al. Feb 2006 B2
7013001 Felger Mar 2006 B1
7027800 Haumont et al. Apr 2006 B2
7039505 Southard et al. May 2006 B1
7039699 Narin et al. May 2006 B1
7043640 Pritchard et al. May 2006 B2
7089310 Ellerman et al. Aug 2006 B1
7089585 Dharmarajan Aug 2006 B1
7096192 Pettitt Aug 2006 B1
7100049 Gasparini et al. Aug 2006 B2
7103570 Morea et al. Sep 2006 B1
7120590 Eisen et al. Oct 2006 B1
7130858 Ciaramitaro et al. Oct 2006 B2
7143095 Barrett et al. Nov 2006 B2
7158622 Lawyer et al. Jan 2007 B2
7165051 Ronning et al. Jan 2007 B2
7174454 Roskind Feb 2007 B2
7191467 Dujari et al. Mar 2007 B1
7197646 Fritz et al. Mar 2007 B2
7221949 Clough May 2007 B2
7225974 Yamauchi Jun 2007 B2
7237717 Rao et al. Jul 2007 B1
7249093 King Jul 2007 B1
7251624 Lee et al. Jul 2007 B1
7260837 Abraham et al. Aug 2007 B2
7263492 Suresh et al. Aug 2007 B1
7263506 Lee et al. Aug 2007 B2
7272610 Torres Sep 2007 B2
7272728 Pierson et al. Sep 2007 B2
7292723 Tedesco et al. Nov 2007 B2
7293096 Foltak et al. Nov 2007 B1
7296088 Padmanabhan et al. Nov 2007 B1
7328216 Hofmann et al. Feb 2008 B2
7330824 Kanojia et al. Feb 2008 B1
7330871 Barber Feb 2008 B2
7340045 Felger Mar 2008 B2
7346551 Pe Jimenez et al. Mar 2008 B2
7346775 Gasparinl et al. Mar 2008 B2
7349955 Korb et al. Mar 2008 B1
7359962 Willebeek-LeMair et al. Apr 2008 B2
7363170 Seul et al. Apr 2008 B2
7373669 Eisen May 2008 B2
7376618 Anderson et al. May 2008 B1
7379891 Donner et al. May 2008 B1
7404087 Teunen Jun 2008 B2
7401082 Keene et al. Jul 2008 B2
7403922 Lewis et al. Jul 2008 B1
7406441 Kimura et al. Jul 2008 B2
7428587 Rowland et al. Sep 2008 B2
7436780 Stephens Oct 2008 B2
7438226 Helsper et al. Oct 2008 B2
7447494 Law et al. Nov 2008 B2
7451487 Oliver et al. Nov 2008 B2
7457401 Lawyer et al. Nov 2008 B2
7457823 Shraim et al. Nov 2008 B2
7475242 Baird et al. Jan 2009 B2
7478182 Schweig Jan 2009 B2
7487350 Utin Feb 2009 B2
7496752 Yamaguchi et al. Feb 2009 B2
7497374 Helsper et al. Mar 2009 B2
7502610 Maher Mar 2009 B2
7502933 Jakobsson et al. Mar 2009 B2
7526796 Lulich et al. Apr 2009 B2
7543740 Greene et al. Jun 2009 B2
7552090 Barber Jun 2009 B1
7555458 Felger Jun 2009 B1
7562221 Nyström et al. Jul 2009 B2
7577620 Donner Aug 2009 B1
7581112 Brown et al. Aug 2009 B2
7606560 Labrou et al. Oct 2009 B2
7657626 Zwicky Feb 2010 B1
7660902 Graham et al. Feb 2010 B2
7665140 Oliver et al. Feb 2010 B2
7665658 Fields Feb 2010 B2
7673793 Greene et al. Mar 2010 B2
7685629 White et al. Mar 2010 B1
7698743 Ohmori et al. Apr 2010 B2
7708200 Helsper et al. May 2010 B2
7711846 Padmanabhan et al. May 2010 B2
7735141 Noel et al. Jun 2010 B1
7739402 Roese et al. Jun 2010 B2
7739512 Hawkes Jun 2010 B2
7743409 Gonzalez et al. Jun 2010 B2
7752084 Pettitt Jul 2010 B2
7756783 Crooks Jul 2010 B2
7761379 Zoldi et al. Jul 2010 B2
7778846 Suresh et al. Aug 2010 B2
7813937 Pathria et al. Oct 2010 B1
7813944 Luk et al. Oct 2010 B1
7849029 Crooks et al. Dec 2010 B2
7849307 Roskind Dec 2010 B2
7853526 Milana Dec 2010 B2
7853533 Eisen Dec 2010 B2
7856372 Ullah Dec 2010 B2
7860783 Yang et al. Dec 2010 B2
7861260 Shkedi Dec 2010 B2
7865427 Wright et al. Jan 2011 B2
7882217 Katzir Feb 2011 B2
7908223 Klein et al. Mar 2011 B2
7908645 Varghese et al. Mar 2011 B2
7930285 Abraham et al. Apr 2011 B2
7933984 Smith et al. Apr 2011 B1
7937467 Barber May 2011 B2
7940929 Sengupta May 2011 B1
7945494 Williams May 2011 B2
7945515 Zoldi et al. May 2011 B2
7949564 Hughes et al. May 2011 B1
7958029 Bobich et al. Jun 2011 B1
7958246 Barber Jun 2011 B2
7961857 Zoldi et al. Jun 2011 B2
7970701 Lewis et al. Jun 2011 B2
7983691 Wong et al. Jul 2011 B1
7991716 Crooks et al. Aug 2011 B2
7995996 Link, II et al. Aug 2011 B2
8001376 Utin Aug 2011 B2
8001597 Crooks Aug 2011 B2
8015614 Matsuzaki et al. Sep 2011 B2
8015921 Leppanen et al. Sep 2011 B2
8019678 Wright et al. Sep 2011 B2
8020763 Kowalchyk et al. Sep 2011 B1
8024266 Barber Sep 2011 B1
8025220 Zoldi et al. Sep 2011 B2
8027439 Zoldi et al. Sep 2011 B2
8032448 Anderson et al. Oct 2011 B2
8037097 Guo et al. Oct 2011 B2
8037511 Lundy et al. Oct 2011 B1
8041597 Li et al. Oct 2011 B2
8042164 Sheynblat et al. Oct 2011 B2
8046271 Jimenez et al. Oct 2011 B2
8060922 Crichton et al. Nov 2011 B2
8065233 Lee et al. Nov 2011 B2
8090648 Zoldi et al. Jan 2012 B2
8108378 Ott, IV et al. Jan 2012 B2
8121962 Vaiciulis et al. Feb 2012 B2
8122082 Klein Feb 2012 B2
8126816 Mu et al. Feb 2012 B2
8131615 Diev et al. Mar 2012 B2
8140689 Barber Mar 2012 B2
8141148 Thomas et al. Mar 2012 B2
8145560 Kulkarni et al. Mar 2012 B2
8145762 Barber Mar 2012 B2
8150968 Barber Apr 2012 B2
8151327 Eisen Apr 2012 B2
8166068 Stevens Apr 2012 B2
8175897 Lee et al. May 2012 B2
8176178 Thomas et al. May 2012 B2
8180686 Ryu et al. May 2012 B2
8181015 Roskind May 2012 B2
8185953 Rothstein et al. May 2012 B2
8190513 Felger May 2012 B2
8190529 Abe et al. May 2012 B2
8191148 Oliver et al. May 2012 B2
8201099 Osbourn et al. Jun 2012 B1
8204833 Mu et al. Jun 2012 B2
8209744 Zhu et al. Jun 2012 B2
8209760 Hardman Jun 2012 B1
8213898 Choti et al. Jul 2012 B2
8214232 Tyler et al. Jul 2012 B2
8214285 Hu et al. Jul 2012 B2
8219415 Tyler et al. Jul 2012 B2
8224348 Bolon et al. Jul 2012 B2
8229844 Felger Jul 2012 B2
8250631 Iyengar et al. Aug 2012 B2
8266295 Klein et al. Sep 2012 B2
8271891 Osbourn et al. Sep 2012 B1
8280833 Miltonberger Oct 2012 B2
8290838 Thakur et al. Oct 2012 B1
8295898 Ashfield et al. Oct 2012 B2
8296228 Kloor Oct 2012 B1
8296229 Yellin et al. Oct 2012 B1
8296245 Barber et al. Oct 2012 B2
8296250 Crooks et al. Oct 2012 B2
8306933 Kawai et al. Nov 2012 B2
8307430 Chen et al. Nov 2012 B1
8311907 Klein et al. Nov 2012 B2
8321269 Linden et al. Nov 2012 B2
8326759 Hammad Dec 2012 B2
8326760 Ma et al. Dec 2012 B2
8326763 Zuili Dec 2012 B2
8332338 Vaiciulis et al. Dec 2012 B2
8332522 Barber Dec 2012 B2
8370253 Grossman et al. Feb 2013 B1
8370638 Duane et al. Feb 2013 B2
8380831 Barber Feb 2013 B2
8392987 Sasamura et al. Mar 2013 B2
8407112 Walter Mar 2013 B2
8407798 Lotem et al. Mar 2013 B1
8417587 Jimenez et al. Apr 2013 B2
8423458 Barber Apr 2013 B2
8424061 Rosenor Apr 2013 B2
8429070 Hu et al. Apr 2013 B2
8438184 Wang May 2013 B1
8443202 White et al. May 2013 B2
8452715 Barber May 2013 B2
8453226 Hammad May 2013 B2
8462161 Barber Jun 2013 B1
8464290 Beyda et al. Jun 2013 B2
8468582 Kuang et al. Jun 2013 B2
8484470 Sakakihara et al. Jul 2013 B2
8495714 Jones et al. Jul 2013 B2
8516439 Brass et al. Aug 2013 B2
8539070 Barber Sep 2013 B2
8543522 Ryman-Tubb et al. Sep 2013 B2
8548137 Zoldi et al. Oct 2013 B2
8559607 Zoldi et al. Oct 2013 B2
8567669 Griegel et al. Oct 2013 B2
8588816 Collins Nov 2013 B2
8601109 Johannsen Dec 2013 B2
8611856 Yan et al. Dec 2013 B2
8612854 Eisen et al. Dec 2013 B2
8660539 Khambete et al. Feb 2014 B2
8676684 Newman et al. Mar 2014 B2
8683561 Utin Mar 2014 B2
8688543 Dominquez Apr 2014 B2
8751815 Lunde et al. Jun 2014 B2
8762283 Gerber et al. Jun 2014 B2
8762574 Barber Jun 2014 B2
8763113 Thomas et al. Jun 2014 B2
8776225 Pierson et al. Jul 2014 B2
8779981 Eisen et al. Jul 2014 B2
8781975 Bennett et al. Jul 2014 B2
8782783 Thomas et al. Jul 2014 B2
8799458 Barber Aug 2014 B2
8817984 Miller et al. Aug 2014 B2
8826393 Eisen Sep 2014 B2
8838478 Kretz et al. Sep 2014 B2
8838967 Mills et al. Sep 2014 B1
8862514 Eisen Oct 2014 B2
8862526 Miltonberger Oct 2014 B2
8881288 Levy et al. Nov 2014 B1
8938671 Eisen et al. Jan 2015 B2
8954560 Johannsen Feb 2015 B2
8966276 Nanopoulos et al. Feb 2015 B2
9060012 Eisen Jun 2015 B2
9083735 Reumann et al. Jul 2015 B2
9098617 Pauley, Jr. et al. Aug 2015 B1
9112850 Eisen Aug 2015 B1
9118646 Pierson et al. Aug 2015 B2
9191370 Barber et al. Nov 2015 B2
9196004 Eisen Nov 2015 B2
9203837 Pierson et al. Dec 2015 B2
9294448 Miller et al. Mar 2016 B2
9298677 Tollinger et al. Mar 2016 B2
9332020 Thomas et al. May 2016 B2
9361597 Britton et al. Jun 2016 B2
9378500 Jimenez et al. Jun 2016 B2
9390384 Eisen Jul 2016 B2
9396331 Eisen et al. Jul 2016 B2
9412123 Eisen Aug 2016 B2
9514248 Guan et al. Dec 2016 B1
9521161 Reumann et al. Dec 2016 B2
9521551 Eisen et al. Dec 2016 B2
9559852 Miller et al. Jan 2017 B2
9633201 Katz Apr 2017 B1
9702961 Shields Jul 2017 B2
9703983 Eisen et al. Jul 2017 B2
9754256 Britton et al. Sep 2017 B2
9754311 Eisen Sep 2017 B2
9781151 McCorkendale et al. Oct 2017 B1
9785973 Tollinger et al. Oct 2017 B2
9948629 Eisen Apr 2018 B2
9990631 Eisen Jun 2018 B2
10021099 Eisen et al. Jul 2018 B2
10089679 Eisen Oct 2018 B2
10091312 Khanwalkar et al. Oct 2018 B1
10339306 Katz Jul 2019 B1
10341344 Eisen et al. Jul 2019 B2
10395252 Eisen Aug 2019 B2
10417637 Eisen Sep 2019 B2
10453066 Eisen Oct 2019 B2
10535093 Eisen Jan 2020 B2
10616201 Eisen Apr 2020 B2
20010011243 Dembo et al. Aug 2001 A1
20010011304 Wesigner et al. Aug 2001 A1
20010016840 Hijikata et al. Aug 2001 A1
20010016876 Kurth et al. Aug 2001 A1
20010018739 Anderson et al. Aug 2001 A1
20010034712 Colvin Oct 2001 A1
20010046096 Worden Nov 2001 A1
20020035622 Barber Mar 2002 A1
20020041328 LeCompte et al. Apr 2002 A1
20020046157 Solomon Apr 2002 A1
20020052852 Bozeman May 2002 A1
20020056042 van der Kaay et al. May 2002 A1
20020073046 David Jun 2002 A1
20020073327 Vellandi Jun 2002 A1
20020083079 Meier et al. Jun 2002 A1
20020112171 Ginter et al. Aug 2002 A1
20020128917 Grounds Sep 2002 A1
20020138335 Palmer et al. Sep 2002 A1
20020138577 Teng et al. Sep 2002 A1
20020153424 Li Oct 2002 A1
20020156724 Levchin et al. Oct 2002 A1
20020156836 Janosik, Jr. et al. Oct 2002 A1
20020166063 Lachman et al. Nov 2002 A1
20020167965 Beasley et al. Nov 2002 A1
20030002732 Gossett et al. Jan 2003 A1
20030002740 Melikian et al. Jan 2003 A1
20030014327 Skantze Jan 2003 A1
20030033161 Walker et al. Feb 2003 A1
20030033356 Tran et al. Feb 2003 A1
20030070080 Rosen Apr 2003 A1
20030074301 Solomon Apr 2003 A1
20030076242 Burns et al. Apr 2003 A1
20030105707 Audebert et al. Jun 2003 A1
20030105854 Thorsteinsson et al. Jun 2003 A1
20030113033 Huang Jun 2003 A1
20030115334 Bhat et al. Jun 2003 A1
20030115481 Baird et al. Jun 2003 A1
20030120543 Carey Jun 2003 A1
20030120586 Litty Jun 2003 A1
20030140258 Nelson et al. Jul 2003 A1
20030154214 Tu et al. Aug 2003 A1
20030158751 Suresh et al. Aug 2003 A1
20030163359 Kanesaka Aug 2003 A1
20030163398 Yoshioka et al. Aug 2003 A1
20030163413 Wiczkowski Aug 2003 A1
20030172036 Feigenbaum Sep 2003 A1
20030182551 Frantz et al. Sep 2003 A1
20030208684 Camacho et al. Nov 2003 A1
20030212618 Keyes et al. Nov 2003 A1
20030233553 Parks et al. Dec 2003 A1
20040001044 Luciani et al. Jan 2004 A1
20040004733 Barker et al. Jan 2004 A1
20040006553 de Vries et al. Jan 2004 A1
20040010682 Foster et al. Jan 2004 A1
20040027385 Rekimoto et al. Feb 2004 A1
20040030912 Merkle, Jr. et al. Feb 2004 A1
20040034794 Mayer et al. Feb 2004 A1
20040066023 Joseph Apr 2004 A1
20040073809 Wing Keong Apr 2004 A1
20040088313 Torres May 2004 A1
20040098618 Kim et al. May 2004 A1
20040105431 Monjas-Llorente et al. Jun 2004 A1
20040111621 Himberger et al. Jun 2004 A1
20040111632 Halperin Jun 2004 A1
20040117321 Sancho Jun 2004 A1
20040139008 Mascavaage, III Jul 2004 A1
20040153644 McCorkendale et al. Aug 2004 A1
20040159699 Nelson et al. Aug 2004 A1
20040166857 Shim et al. Aug 2004 A1
20040171381 Inselberg Sep 2004 A1
20040181598 Paya et al. Sep 2004 A1
20040187023 Alagna Sep 2004 A1
20040203750 Cowdrey et al. Oct 2004 A1
20040230820 Hui Hsu et al. Nov 2004 A1
20040236696 Aoki et al. Nov 2004 A1
20040236702 Fink et al. Nov 2004 A1
20040254890 Sancho et al. Dec 2004 A1
20040260876 Singh et al. Dec 2004 A1
20040260922 Goodman et al. Dec 2004 A1
20050008148 Jacobson Jan 2005 A1
20050015601 Tabi Jan 2005 A1
20050022020 Fremberg et al. Jan 2005 A1
20050033653 Eisenberg et al. Feb 2005 A1
20050033703 Holdsworth Feb 2005 A1
20050039034 Doyle et al. Feb 2005 A1
20050039219 Cooper et al. Feb 2005 A1
20050076230 Redenbaugh et al. Apr 2005 A1
20050085931 Willeby Apr 2005 A1
20050097320 Golan et al. May 2005 A1
20050108177 Sancho May 2005 A1
20050111054 Umeda May 2005 A1
20050113092 Coppinger et al. May 2005 A1
20050131826 Cook Jun 2005 A1
20050185225 Brawn et al. Aug 2005 A1
20050188423 Motsinger et al. Aug 2005 A1
20050204159 Davis et al. Sep 2005 A1
20050210533 Copeland et al. Sep 2005 A1
20050246551 Dondl et al. Nov 2005 A1
20050278542 Pierson et al. Dec 2005 A1
20060008779 Shand et al. Jan 2006 A1
20060010072 Eisen Jan 2006 A1
20060026669 Zakas Feb 2006 A1
20060031938 Choi Feb 2006 A1
20060048211 Pierson et al. Mar 2006 A1
20060064346 Steenstra et al. Mar 2006 A1
20060069619 Walker et al. Mar 2006 A1
20060075492 Golan et al. Apr 2006 A1
20060080263 Willis et al. Apr 2006 A1
20060126829 Lai Jun 2006 A1
20060130132 Dharmarajan Jun 2006 A1
20060136294 Linden et al. Jun 2006 A1
20060155985 Canard et al. Jul 2006 A1
20060161501 Waserstein et al. Jul 2006 A1
20060176984 Lee et al. Aug 2006 A1
20060190331 Tollinger et al. Aug 2006 A1
20060190489 Vohariwatt et al. Aug 2006 A1
20060200855 Willis Sep 2006 A1
20060200856 Salowey et al. Sep 2006 A1
20060224898 Ahmed Oct 2006 A1
20060237531 Heffez et al. Oct 2006 A1
20060253327 Morris et al. Nov 2006 A1
20060253328 Kohli et al. Nov 2006 A1
20060264202 Hagmeier et al. Nov 2006 A1
20060281541 Nguyen et al. Dec 2006 A1
20060282660 Varghese et al. Dec 2006 A1
20060284838 Tsatalos et al. Dec 2006 A1
20070011078 Jain et al. Jan 2007 A1
20070030528 Quaeler et al. Feb 2007 A1
20070038568 Greene et al. Feb 2007 A1
20070043837 Kruse et al. Feb 2007 A1
20070061211 Ramer et al. Mar 2007 A1
20070061273 Greene et al. Mar 2007 A1
20070073630 Greene et al. Mar 2007 A1
20070094594 Matichuk et al. Apr 2007 A1
20070097076 Gross May 2007 A1
20070097976 Wood et al. May 2007 A1
20070101405 Engle et al. May 2007 A1
20070107059 Chasin et al. May 2007 A1
20070118892 Sastry et al. May 2007 A1
20070124246 Lawyer et al. May 2007 A1
20070162763 Bender et al. Jul 2007 A1
20070198410 Labgold et al. Aug 2007 A1
20070199054 Florencio et al. Aug 2007 A1
20070204044 Rice et al. Aug 2007 A1
20070214151 Scott et al. Sep 2007 A1
20070220594 Tulsyan Sep 2007 A1
20070233599 Ganesan et al. Oct 2007 A1
20070234070 Horning et al. Oct 2007 A1
20070239604 O'Connell et al. Oct 2007 A1
20070255821 Ge et al. Nov 2007 A1
20070266257 Camaisa et al. Nov 2007 A1
20070271466 Mak Nov 2007 A1
20070294401 Shkedi Dec 2007 A1
20080002725 Alicherry et al. Jan 2008 A1
20080005394 Crooks Jan 2008 A1
20080010367 Cheng et al. Jan 2008 A1
20080010678 Burdette et al. Jan 2008 A1
20080015988 Brown et al. Jan 2008 A1
20080021801 Song et al. Jan 2008 A1
20080040653 Levine Feb 2008 A1
20080040802 Pierson et al. Feb 2008 A1
20080046562 Butler Feb 2008 A1
20080052629 Phillips et al. Feb 2008 A1
20080098222 Zilberman Apr 2008 A1
20080101277 Taylor May 2008 A1
20080104070 Lonchar May 2008 A1
20080104672 Lunde May 2008 A1
20080104684 Lunde May 2008 A1
20080120195 Shakkarwar May 2008 A1
20080120214 Steele et al. May 2008 A1
20080133420 Barber Jun 2008 A1
20080162200 O'Sullivan et al. Jul 2008 A1
20080162202 Khanna et al. Jul 2008 A1
20080162475 Meggs Jul 2008 A1
20080163128 Callanan et al. Jul 2008 A1
20080184355 Walrath Jul 2008 A1
20080184372 Hoshina Jul 2008 A1
20080189790 Park Aug 2008 A1
20080191007 Keay Aug 2008 A1
20080201214 Aaron Aug 2008 A1
20080204788 Kelly et al. Aug 2008 A1
20080222706 Renaud et al. Sep 2008 A1
20080235623 Li Sep 2008 A1
20080239365 Salgado et al. Oct 2008 A1
20080249820 Pathria et al. Oct 2008 A1
20080281606 Kitts Nov 2008 A1
20080281941 Park et al. Nov 2008 A1
20080288299 Schultz Nov 2008 A1
20080301281 Wang et al. Dec 2008 A1
20080306830 Lasa Dec 2008 A1
20080313079 Van Bosch et al. Dec 2008 A1
20080319774 O'Sullivan et al. Dec 2008 A1
20080319841 Oliver et al. Dec 2008 A1
20090018940 Wang et al. Jan 2009 A1
20090024971 Willner et al. Jan 2009 A1
20090044279 Crawford et al. Feb 2009 A1
20090044282 Govindaraju Feb 2009 A1
20090055398 Zhu et al. Feb 2009 A1
20090070664 Gavin et al. Mar 2009 A1
20090089869 Varghese Apr 2009 A1
20090106413 Salo Apr 2009 A1
20090138590 Lee et al. May 2009 A1
20090157417 Bradley et al. Jun 2009 A1
20090164269 Gupta et al. Jun 2009 A1
20090177692 Chagoly et al. Jul 2009 A1
20090183010 Schnell et al. Jul 2009 A1
20090205031 Sato et al. Aug 2009 A1
20090222308 Zoldi et al. Sep 2009 A1
20090228585 Kosbab et al. Sep 2009 A1
20090234738 Britton et al. Sep 2009 A1
20090241174 Rajan et al. Sep 2009 A1
20090260064 Mcdowell et al. Oct 2009 A1
20090265773 Schultz Oct 2009 A1
20090271306 Pierson Oct 2009 A1
20090307141 Kongalath et al. Oct 2009 A1
20090280777 Doherty Nov 2009 A1
20090292568 Khosravani et al. Nov 2009 A1
20090293128 Lippmann et al. Nov 2009 A1
20090296907 Vendrow et al. Dec 2009 A1
20090298480 Khambete et al. Dec 2009 A1
20090307119 Ahles et al. Dec 2009 A1
20090313134 Faith et al. Dec 2009 A1
20100005013 Uriarte Jan 2010 A1
20100030641 Ibenforth Feb 2010 A1
20100030777 Panwar et al. Feb 2010 A1
20100036672 Li Feb 2010 A1
20100057623 Kapur et al. Mar 2010 A1
20100070606 Shenfield et al. Mar 2010 A1
20100082972 Benco et al. Apr 2010 A1
20100094767 Miltonberger Apr 2010 A1
20100094768 Miltonberger Apr 2010 A1
20100106611 Paulsen et al. Apr 2010 A1
20100107225 Spencer et al. Apr 2010 A1
20100121716 Golan May 2010 A1
20100138299 Preston et al. Jun 2010 A1
20100145960 Casteel et al. Jun 2010 A1
20100153540 Li et al. Jun 2010 A1
20100157848 Das et al. Jun 2010 A1
20100161424 Sylvain Jun 2010 A1
20100161566 Adair et al. Jun 2010 A1
20100169157 Muhonen et al. Jul 2010 A1
20100169192 Zoldi et al. Jul 2010 A1
20100192082 Sodah Jul 2010 A1
20100199332 Bachmann et al. Aug 2010 A1
20100199338 Craddock et al. Aug 2010 A1
20100211464 Zhu et al. Aug 2010 A1
20100223105 Gassewitz et al. Sep 2010 A1
20100223145 Dragt Sep 2010 A1
20100228625 Priyadarshan et al. Sep 2010 A1
20100228638 Mikan et al. Sep 2010 A1
20100257065 Gupta et al. Oct 2010 A1
20100274678 Rolf et al. Oct 2010 A1
20100293094 Kolkowitz et al. Nov 2010 A1
20100306827 Esteve Balducci et al. Dec 2010 A1
20100321296 Gross Dec 2010 A1
20100333170 Cox et al. Dec 2010 A1
20110022483 Hammad Jan 2011 A1
20110022517 Hammad Jan 2011 A1
20110023115 Wright Jan 2011 A1
20110035302 Martell et al. Feb 2011 A1
20110047072 Ciurea Feb 2011 A1
20110082768 Eisen Apr 2011 A1
20110112901 Fried et al. May 2011 A1
20110161228 Suzuki et al. Jun 2011 A1
20110173281 Smith Jul 2011 A1
20110184778 Graepel et al. Jul 2011 A1
20110194679 Patisaul et al. Aug 2011 A1
20110218860 Barber Sep 2011 A1
20110225091 Plastina et al. Sep 2011 A1
20110238575 Nightengale et al. Sep 2011 A1
20110251951 Kolkowitz et al. Oct 2011 A1
20110258118 Ciurea Oct 2011 A1
20110282778 Wright et al. Nov 2011 A1
20110288932 Marks et al. Nov 2011 A1
20110302087 Crooks Dec 2011 A1
20110302096 Lowry Dec 2011 A1
20110307341 Zohar et al. Dec 2011 A1
20110314557 Marshall Dec 2011 A1
20120022883 Morrison Jan 2012 A1
20120030083 Newman et al. Feb 2012 A1
20120030757 Baikalov et al. Feb 2012 A1
20120030771 Pierson et al. Feb 2012 A1
20120036042 Graylin et al. Feb 2012 A1
20120041841 Hu et al. Feb 2012 A1
20120042361 Wong et al. Feb 2012 A1
20120054136 Maulik Mar 2012 A1
20120054847 Schultz et al. Mar 2012 A1
20120084203 Mehew et al. Apr 2012 A1
20120084860 Cao et al. Apr 2012 A1
20120094639 Carlson et al. Apr 2012 A1
20120101939 Kasower Apr 2012 A1
20120150742 Poon et al. Jun 2012 A1
20120150750 Law et al. Jun 2012 A1
20120157062 Kim et al. Jun 2012 A1
20120158586 Ganti et al. Jun 2012 A1
20120166533 Rubinstein et al. Jun 2012 A1
20120173465 Hore et al. Jul 2012 A1
20120179558 Fischer Jul 2012 A1
20120197981 Chan Aug 2012 A1
20120204262 Thomas et al. Aug 2012 A1
20120215896 Johannsen Aug 2012 A1
20120216282 Pappu et al. Aug 2012 A1
20120221470 Lyon Aug 2012 A1
20120222111 Oliver et al. Aug 2012 A1
20120233665 Ranganathan Sep 2012 A1
20120239553 Gonen et al. Sep 2012 A1
20120239574 Smith et al. Sep 2012 A1
20120239774 Tola et al. Sep 2012 A1
20120278127 Kirakosyan et al. Nov 2012 A1
20120295580 Corner Nov 2012 A1
20120297380 Colbert et al. Nov 2012 A1
20120311162 Paulsen et al. Dec 2012 A1
20120323788 Keresman et al. Dec 2012 A1
20120323836 Wright et al. Dec 2012 A1
20120330787 Hanson et al. Dec 2012 A1
20130006743 Moore et al. Jan 2013 A1
20130018789 Kaufmann Jan 2013 A1
20130018791 Mendicino et al. Jan 2013 A1
20130024300 Choudhuri et al. Jan 2013 A1
20130036304 Lin et al. Feb 2013 A1
20130040603 Stahlberg et al. Feb 2013 A1
20130042298 Plaza Fonseca et al. Feb 2013 A1
20130055388 Thomas et al. Feb 2013 A1
20130073463 Dimmick et al. Mar 2013 A1
20130073473 Heath Mar 2013 A1
20130085841 Singleton et al. Apr 2013 A1
20130097673 Meehan et al. Apr 2013 A1
20130097701 Moyle et al. Apr 2013 A1
20130103482 Song et al. Apr 2013 A1
20130103629 Vaiciulis et al. Apr 2013 A1
20130110637 Bott May 2013 A1
20130111592 Zhu et al. May 2013 A1
20130117832 Gandhi May 2013 A1
20130144539 Allen et al. Jun 2013 A1
20130148525 Cuadra Sanchez et al. Jun 2013 A1
20130159195 Kirillin et al. Jun 2013 A1
20130185764 Krstić et al. Jul 2013 A1
20130197998 Buhrmann et al. Aug 2013 A1
20130198066 Wall et al. Aug 2013 A1
20130226717 Ahluwalia Aug 2013 A1
20130339186 French Dec 2013 A1
20140032902 Agrawal et al. Jan 2014 A1
20140114821 Yoshioka et al. Apr 2014 A1
20140120864 Manolarakis et al. May 2014 A1
20140122343 Einav et al. May 2014 A1
20140148197 Shields May 2014 A1
20140197950 Shupp et al. Jul 2014 A1
20140258125 Gerber et al. Sep 2014 A1
20140289867 Bukai Sep 2014 A1
20140361926 Eisen et al. Dec 2014 A1
20150026027 Priess Jan 2015 A1
20150046989 Oberheide et al. Feb 2015 A1
20150106270 Burrell et al. Apr 2015 A1
20150127825 Johannsen May 2015 A1
20150186901 Miltonberger Jul 2015 A1
20150188897 Grigorovici et al. Jul 2015 A1
20150193769 Barber Jul 2015 A1
20150193821 Izumori et al. Jul 2015 A1
20150205978 Eisen et al. Jul 2015 A1
20150242861 Baldassano Aug 2015 A9
20150254658 Bondesen et al. Sep 2015 A1
20150294316 Eisen Oct 2015 A1
20150350856 Circosta et al. Dec 2015 A1
20160019546 Eisen Jan 2016 A1
20160021084 Eisen Jan 2016 A1
20160034954 Tollinger et al. Feb 2016 A1
20160125461 Sivaramakrishnan et al. May 2016 A1
20160203487 Eisen Jul 2016 A1
20160246581 Jimenez et al. Aug 2016 A1
20160321701 Artman et al. Nov 2016 A1
20160328710 Britton et al. Nov 2016 A1
20170039571 Eisen Feb 2017 A1
20180089459 Eisen et al. Mar 2018 A1
20180108029 Sinha et al. Apr 2018 A1
20180121915 Britton et al. May 2018 A1
20180262478 Eisen Sep 2018 A1
20180322500 Eisen Nov 2018 A1
20190028472 Eisen Jan 2019 A1
20190066192 Eisen Feb 2019 A1
20190356659 Eisen et al. Nov 2019 A1
20200005315 Eisen Jan 2020 A1
20200013064 Eisen Jan 2020 A1
20200034845 Eisen Jan 2020 A1
20200092287 Cano et al. Mar 2020 A1
Foreign Referenced Citations (90)
Number Date Country
0 418 144 Mar 1991 EP
0 645 692 Mar 1995 EP
0 923 039 Jun 1999 EP
1 067 792 Jan 2001 EP
1 209 935 May 2002 EP
1 256 911 Nov 2002 EP
1 201 070 Jun 2006 EP
1 703 382 Sep 2006 EP
1 197 032 Aug 2007 EP
2 154 891 Feb 2010 EP
2 491 101 Nov 2012 GB
2 492 604 Jan 2013 GB
05-257602 Oct 1993 JP
2000-020467 Jan 2000 JP
2000-099250 Apr 2000 JP
2000-137755 May 2000 JP
2000-242582 Sep 2000 JP
2000-276281 Oct 2000 JP
2002-007697 Jan 2002 JP
2002-297869 Oct 2002 JP
2003-050910 Feb 2003 JP
2005-063216 Mar 2005 JP
2005-115644 Apr 2005 JP
2005-135431 May 2005 JP
2006-004333 Jan 2006 JP
2007-272520 Oct 2007 JP
2007-282249 Oct 2007 JP
2008-022298 Jan 2008 JP
2008-065363 Mar 2008 JP
2008-171315 Jul 2008 JP
2008-535124 Aug 2008 JP
2008-243008 Oct 2008 JP
2008-257434 Oct 2008 JP
2008-269229 Nov 2008 JP
4202314 Dec 2008 JP
2009-048538 Mar 2009 JP
2009-122880 Jun 2009 JP
2009-175984 Aug 2009 JP
2010-020728 Jan 2010 JP
2010-061254 Mar 2010 JP
2010-122955 Jun 2010 JP
2010-122956 Jun 2010 JP
2010-225040 Oct 2010 JP
2010-250664 Nov 2010 JP
2011-065531 Mar 2011 JP
2011-134252 Jul 2011 JP
2011-159307 Aug 2011 JP
2012-234503 Nov 2012 JP
5191376 May 2013 JP
5216932 Jun 2013 JP
10-1999-0015738 Mar 1999 KR
10-0645983 Nov 2006 KR
10-2008-0044558 May 2008 KR
10-2009-0051977 Sep 2009 KR
10-2010-0085888 Jul 2010 KR
WO 96041488 Dec 1996 WO
WO 97003410 Jan 1997 WO
WO 99050775 Oct 1999 WO
WO 01011450 Feb 2001 WO
WO 01033520 May 2001 WO
WO 01095550 Dec 2001 WO
WO 01097134 Dec 2001 WO
WO 02001462 Jan 2002 WO
WO 02071176 Sep 2002 WO
WO 02091226 Nov 2002 WO
WO 03017155 Feb 2003 WO
WO 03025868 Mar 2003 WO
WO 03075197 Sep 2003 WO
WO 02037219 May 2004 WO
WO 2004038997 May 2004 WO
WO 2005038818 Apr 2005 WO
WO 2005099166 Oct 2005 WO
WO 2006135367 Dec 2006 WO
WO 2007001394 Jan 2007 WO
WO 2007045818 Apr 2007 WO
WO 2007072238 Jun 2007 WO
WO 2007075573 Jul 2007 WO
WO 2008029828 Mar 2008 WO
WO 2008054849 May 2008 WO
WO 2009132148 Oct 2009 WO
WO 2012054646 Apr 2012 WO
WO 2012061801 May 2012 WO
WO 2012142121 Oct 2012 WO
WO 2012142584 Oct 2012 WO
WO 2013006538 Jan 2013 WO
WO 2013142722 Sep 2013 WO
WO 2014022813 Feb 2014 WO
WO 2014078569 May 2014 WO
WO 2018129373 Jul 2018 WO
WO 2018151822 Aug 2018 WO
Non-Patent Literature Citations (45)
Entry
Banking Services Newsletter, “Keeping You Up-to-Date on Banking Developments Throughout the UC System”, University of California, Office of the President, Banking Services Group, Newsletter 1, Dec. 2005, p. 1.
Bharosa, “Bharosa Authenticator”, http://www.bharosa.com/authenticator.html, Jan. 18, 2007, pp. 3.
Bharosa, “Bharosa Announces Online Authentication Solution to Counter Check 21-Based Fraud”, http://www.bharosa.com/news/PR-110705.html, Jan. 18, 2007, pp. 2.
Darlin, Damon, “Opening the Door on the Credit Report and Throwing Away the Lock”, http://www.nytimes.com/2006/03/18/business/yourmoney.html, The New York Times, Saturday Mar. 18, 2006, pp. 2.
Derfler, Jr. et al, “How Networks Work”, Millennium Edition, Que Corporation, Indianapolis, IN, Sep. 2000. [Uploaded in 2 parts].
Gralla, Preston, “How the Internet Works”, Millennium Edition, Que Corporation, Indianapolis, IN, Aug. 1999. [Uploaded in 2 parts].
Gueye et al., “Constraint-Based Geolocation of Internet Hosts”, ACM Internet Measurement Conference 2004, Oct. 25-27, 2004, Taormina, Sicily, Italy, vol. 14, No. 6, pp. 288-293.
“ISO 8583”, Wikipedia, http://en.wikipedia.org/wiki/ISO_8583, dated Apr. 13, 2015 in 14 pages.
Kohno et al., “Remote Physical Device Fingerprinting”, Proceedings of 2005 IEEE Symposium on Security and Privacy, May 8-11, 2005, Oakland, CA, pp. 211-225.
Manavoglu et al., “Probabilistic User Behavior Models”, ICDM, Third IEEE International Conference on Data Mining, Nov. 19-22, 2003, pp. 203-210.
TechWeb, “Wells Fargo Intros Anti-Theft Alerts”, http://www.techweb.com/wire/166404177, Aug. 1, 2005, pp. 1.
“UPIC Marketing Guide—The Clearing House”, http://www.upic.com/infofiles/UPIC_Marketing_Guide.pdf, as printed Dec. 19, 2006. pp. 1-16.
White, Ron, “How Computers Work”, Millennium Edition, Que Corporation, Indianapolis, IN, Sep. 1999. [Uploaded in 2 parts].
Official Communication in European Patent Application No. 05818903.6, dated Dec. 23, 2011.
Official Communication in European Patent Application No. 05818903.6, dated Mar. 18, 2014.
International Search Report and Written Opinion for Application No. PCT/US2005/035532, dated Oct. 29, 2007.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US2005/035532, dated Jan. 9, 2008.
Official Communication in European Patent Application No. 6845722.5, dated Mar. 13, 2009.
Official Communication in European Patent Application No. 8159110.9, dated Oct. 27, 2008.
Official Communication in European Patent Application No. 8159110.9, dated Mar. 22, 2010.
International Search Report and Written Opinion for Application No. PCT/US2006/048251, dated Feb. 26, 2008.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US2006/048251, dated Jun. 18, 2008.
International Search Report and Written Opinion for Application No. PCT/US2007/065776, dated Jul. 3, 2008.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US2007/065776, dated Sep. 30, 2008.
International Search Report and Written Opinion received in PCT Application No. PCT/US2005/020750, dated Jun. 13, 2008.
International Preliminary Report on Patentability and Written Opinion received in PCT Application No. PCT/US2005/020750, dated Jul. 1, 2008.
Official Communication in European Patent Application No. 08165224.0, dated Nov. 15, 2010.
Supplementary European Search Report for Application No. EP09735653, dated Dec. 16, 2011.
Official Communication for Application No. EP09735653, dated Jan. 4, 2013.
International Search Report and Written Opinion for Application No. PCT/US2009/041462, dated Dec. 1, 2009.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US2009/041462, dated Nov. 4, 2010.
International Search Report and Written Opinion for Application No. PCT/US2011/056948, dated Apr. 18, 2012.
International Preliminary Report on Patentability in Application No. PCT/US2011/056948, dated May 2, 2013.
International Search Report and Written Opinion for Application No. PCT/US2013/033357, dated Jul. 10, 2013.
International Preliminary Report on Patentability in Application No. PCT/US2013/033357, dated Sep. 23, 2014.
International Search Report and Written Opinion for Application No. PCT/US2013/053495, dated Nov. 22, 2013.
International Preliminary Report on Patentability in Application No. PCT/US2013/053495, dated Feb. 3, 2015.
International Search Report and Written Opinion for Application No. PCT/US2013/070146, dated Mar. 3, 2014.
International Preliminary Report on Patentability in Application No. PCT/US2013/070146, dated May 19, 2015.
Provisional Application as filed in U.S. Appl. No. 61/324,312, dated Apr. 15, 2010 in 15 pages.
Official Communication in European Patent Application No. 05818903.6, dated Jul. 18, 2017.
Summons to Attend Oral Proceedings received in European Application No. EP09735653, dated Oct. 7, 2016.
The Knightmare, “Secrets of a Super Hacker”, Loompanics Unlimited, Port Townsend, Washington, 1994, pp. 233.
Official Communication in European Patent Application No. 19181057.1, dated Sep. 17, 2019.
Official Communication in European Patent Application No. 19189189.4, dated Jan. 21, 2020.
Provisional Applications (1)
Number Date Country
61872287 Aug 2013 US