The field relates generally to user verification, and more particularly to techniques for verifying the identity of a user of an electronic device.
As technology grows and more information is stored electronically, it is necessary to protect private electronic information. A common means of protecting private electronic information is requiring a user's identity to be verified in order to access the electronic device on which the private electronic information is stored. Oftentimes only a single means of user authentication is required and the verification process is carried out remotely. One problem with remote verification is that it requires a network connection. If a network connection is not available, a user cannot be authenticated and is therefore unable to access private electronic information.
Illustrative embodiments of the present invention provide improved techniques for verification of user identity.
In one embodiment, a method comprises registering a given user with a verification platform, the verification platform comprising at least one verification platform server and a verification platform application programming interface (API) adapted for communication with a verification agent implemented on a given processing device of the given user. The method also comprises receiving, at the verification platform via the verification platform API, a specification of verification rules to be used by the verification platform in authenticating a verification request from the given user, the verification rules specifying two or more different types of verification, a verification mode for each of the two or more different types of verification and a sequence for performing the two or more different types of verification. The method further comprises synchronizing verification credentials associated with the given user for each of the two or more different types of verification at the verification platform server, receiving, at the verification platform via the verification platform API, a verification request from the given user, and authenticating, at the verification platform, the verification request utilizing the specified verification rules and the synchronized verification credentials.
In another embodiment, an apparatus comprises a verification platform comprising at least one processing device having a processor coupled to a memory and a verification platform application programming interface (API) adapted for communication with a verification agent implemented on a given processing device associated with a given user. The verification platform is configured to register the given user with the verification platform, to receive, via the verification platform API, a specification of verification rules to be used by the verification platform in authenticating a verification request from the given user, the verification rules specifying two or more different types of verification, a verification mode for each of the two or more different types of verification and a sequence for performing the two or more different types of verification, to synchronize verification credentials associated with the given user for each of the two or more different types of verification at the verification platform server, to receive, via the verification platform API, a verification request from the given user, and to authenticate the verification request utilizing the specified verification rules and the synchronized verification credentials.
In another embodiment, a method comprises registering a given user with a verification platform, the verification platform comprising at least one verification platform server and a verification platform application programming interface (API) adapted for communication with a verification agent implemented on a given processing device of the given user. The method also comprises sending, from the verification agent to the verification platform via the verification platform API, a specification of verification rules to be used by the verification platform in authenticating a verification request from the given user, the verification rules specifying two or more different types of verification, a verification mode for each of the two or more different types of verification and a sequence for performing the two or more different types of verification. The method further comprises synchronizing verification credentials associated with the given user for each of the two or more different types of verification at the verification platform server and sending, from the verification agent to the verification platform via the verification platform API, a verification request from the given user. The verification request is authenticated at the verification platform utilizing the specified verification rules and the synchronized verification credentials.
All illustrations of the drawings are for the purpose of describing exemplary embodiments of the present invention and are not intended to limit the scope of the present invention in any way.
Illustrative embodiments of the present invention will be described herein with reference to exemplary systems and associated verification platforms, user devices and other processing devices. It is to be appreciated, however, that the invention is not restricted to use with the particular illustrative system and device configurations shown. Accordingly, the term “communication system” as used herein is intended to be broadly construed, so as to encompass, for example, systems in which a single user device communicates with another processing device associated with a verification platform, systems in which at least two user devices each communicate with another processing device associated with a verification platform, and other types of systems.
As discussed above, embodiments overcome drawbacks associated with conventional techniques for verification of a user. In embodiments, remote verification is first attempted in order to provide user access to protected information. If a connection to a remote server cannot be established or the remote server cannot be found, local verification is attempted. Local verification must be performed within a predetermined period of time using locally stored verification data.
It will be assumed for description of the flowcharts of
A verification service for remote and local verification is implemented using a verification platform that illustratively includes a verification platform application programming interface (API) and a verification platform server. The verification platform API supports communication with a verification agent implemented on the user device. The verification application on the user device illustratively includes a login screen, an application selection screen, and a verification selection screen, but numerous alternative screen arrangements or other types of user interfaces can be used in other embodiments.
The embodiments of
The verification request may be generated, for example, in conjunction with an attempted launch of a designated application on the user device, and user access to the designated application on the user device may be controlled responsive to the granting or denying of the verification request. The designated application on the user device is also referred to herein as a “secure application” or a “protected application” as its access from the user device is conditioned on satisfactory completion of rules-based multi-factor verification. A verification request may also be generated on occurrence of various other events and transactions. For example, a verification request may be generated when a user attempts to perform a particular action within a secure application rather than on attempted launch of the secure application. While verification requests are described below primarily in the context of a user attempt to launch a protected application, verification requests may be generated for numerous other events, transactions, etc.
The rules-based multi-factor verification is based on verification rules, which specify multiple distinct types of verification selected by the user and a sequence in which the selected types of verification are to be applied in processing the verification request for remote and local verification.
In the present embodiment, granting of the verification request requires that the user device be enrolled in the verification service supported by the verification platform. The user device must also have the verification application installed. Such enrollment may also be referred to herein as involving enrollment of a corresponding user in the verification service.
An exemplary enrollment process for the user device is shown in
The verification application is launched in step 104. In step 106, a verification selection screen is shown. The verification selection screen prompts the user to select methods or modes of verification and the order in which they are performed.
It is possible for verification modes to be used in conjunction with one another or for a verification mode to act as a failsafe when another verification mode cannot be completed. For example, a user could choose to require both face and voice verification. In this case both modes of verification must be satisfied in order to gain access to the protected application. Alternatively, a user could require face or voice verification. In this case face verification would be attempted first and in the event that verification fails or cannot be performed, the device would attempt to authorize access using voice verification.
The number of verification modes, the sequence of verification modes used and the types of verification can be selected based on the desired level of protection. The methods used for verification include, by way of example, voice verification, face verification, live verification, location verification and motion verification. Various other modes of verification may be used in addition to or as an alternative to these modes of verification.
These verification methods are more generally referred to herein as distinct “types” of verification. By way of example, the user can select the types of verification he or she would like to use from a displayed list, and can also configure the particular manner in which the different types of verification are to be applied. The latter may involve the user specifying logic functions such as AND and OR between selected verification types that indicate the manner in which the selected verification types should be applied.
For example, a user could choose to require both face and voice verification to access to given secure application. In this case, the user selects the two verification types and specifies that they are to be applied in accordance with a logic AND function, such that both verification types must be satisfied in order to gain access to the secure application. Alternatively, the user could require face or voice verification. In this case, the user selects the two verification types and specifies that they are to be applied in accordance with a logic OR function, such that face verification would be attempted first and in the event that face verification fails, the device would attempt to authorize access using voice verification.
Such specifications are examples of what are more generally referred to herein as one or more “verification rules” established by a user. A given such verification rule or set of verification rules generally specifies multiple distinct types of verification selected by the user, and a sequence in which the selected verification types are to be applied in processing the verification request. Thus, the selection step 108 in the exemplary
After selecting the methods of verification in step 108, verification credentials for the selected methods of verification are submitted in step 110. For example, voice verification requires a voice profile in order to subsequently verify the user's voice. Similarly, face verification or facial recognition requires one or more images of a user's face for verification credentials. Various other types of credentials may be required for other methods of verification. Once the verification credentials are submitted, the user is enrolled in step 112.
In some embodiments, alternative enrollment processes may be used. For example, the selection of particular verification types and sequence in which those types should be applied can be managed through a web-based administrative interface. Such management can be used to generate verification rules for a given user or for groups of multiple users and may further involve adding or removing users from particular groups or otherwise updating verification rules responsive to user input or designated policies. These and other provisioning functions may therefore be performed by a user or a system administrator.
Once a user has enrolled their electronic device and the desired modes of verification have been specified, the verification service may be utilized. The verification application is run in the background on the electronic device. The verification application implements a verification agent.
If the attempt to encrypt and invoke the verification platform API is not successful, an internal clock or timer is started on the electronic device in step 208. The internal clock or timer is more generally referred to herein as a local timer. The local timer is activated by the verification agent and is set to expire after a predetermined period of time. The user must perform local verification within the predetermined time period in order to gain access to the protected application. In step 210, a determination is made as to whether the predetermined time period has expired. If the predetermined time period has expired, the user verification fails in step 212.
If the predetermined time period has not expired, the verification agent investigates the capabilities of the user's electronic device to determine if local verification can be performed in step 214. For example, if face verification is required and the user's electronic device does not have a camera, then face verification cannot be completed. Similarly, if voice verification is required and the user's electronic device does not have a microphone, voice verification cannot be performed. If location verification is required and the user's electronic device does not have global positioning system (GPS) sensors or other location determination sensors, location verification cannot be performed. If face verification or voice verification is required, however, then the user's electronic device need only have at least one of a camera and a microphone.
When a user device is capable of collecting the required verification credentials, local verification can be performed in step 216. The local verification may be rules-based multi-factor authentication.
Local verification requires that verification data or verification credentials are stored locally on the user's device.
When a connection is available, the verification agent encrypts and invokes the verification platform API in step 300 to request copies of the remotely stored verification data. The verification agent can be programmed to attempt synchronization at predetermined intervals of time or whenever a connection to the verification platform API is available.
In step 302, the verification platform API invokes a verification platform server session. The verification platform server then gathers user verification credentials in step 304. The user verification credentials may include user facial images, user voice audio files, passwords, etc. Copies of the gathered verification credentials are then returned to the verification platform API in step 306. The verification credentials are then forwarded to the verification agent in step 308. In step 310, the verification credentials are encrypted and stored locally on the user's device. The locally stored verification data can then be accessed at a later time to perform local user verification. In some embodiments, different verification data or verification credentials can be synchronized and stored locally at different times according to the varying verification requirements for one or more protected applications.
The verification platform server retrieves the verification rules and returns the results to the verification platform API in step 404. The verification platform server informs the verification platform API of any rules that must be met to launch the protected application. The verification platform API then forwards the results to the verification agent in step 406. Step 406 may comprise sending an event notification to the verification agent. The verification agent then sends a request for verification to the user through the verification application.
The user performs the required modes of verification on the electronic device in step 408. The verification agent sends submitted verification credentials to the verification platform API in step 410. The verification agent may encrypt and invoke the verification platform API after completion of each verification mode. The verification platform API invokes a verification platform server session in step 412 to determine the validity of the submitted verification credentials for each mode of verification. In step 414, the verification platform server informs the verification platform API of the verification results. The verification platform API then sends an event notification to the verification agent in step 416. The event notification comprises the verification results. The verification agent then authorizes or denies access to launch the protected application based on the verification results in step 418.
If the face verification is determined to be successful in step 506 or if the voice verification is determined to be successful in step 510, location verification is performed in step 514. Next, a determination is made as to whether the location verification was successful in step 516. If the location verification is not successful, then verification fails in step 518. If the location verification is successful, then the verification succeeds and the protected application is launched in step 520.
Location verification is performed in step 604. In step 606, a determination is made as to whether the location verification was successful. If the location verification is not successful, then verification fails in step 608. If the location verification is successful, voice verification is performed in step 610. Next, a determination is made in step 612 as to whether the voice verification was successful. If the voice verification fails, then face verification is performed in step 614.
In step 616, a determination is made as to whether the face verification was successful. If the face verification is not successful, then third party verification is performed in step 618. A determination is then made in step 610 as to whether the third party verification was successful. If the third party verification is not successful, then verification fails in step 622. If voice verification, face verification or third party verification is successful, then the protected application is launched in step 624.
Communications between the verification agent and the verification platform API may utilize one or more of JavaScript Object Notation syntax, REpresentational State Transfer (REST) based client-server architecture and mutual client-server certificate-based encryption and authentication.
As a more particular example of communications of the latter type, a verification application acting as a client provides a certificate to the verification platform server and the server provides its certificate to the client. Both certificates are verified using a certificate authority, which has signed both the client and server certificates. The information is transmitted between the client and server over a Secure Socket Layer (SSL), using 128 bit or 256 bit Advanced Encryption Standard (AES) cipher encryption. The cipher encryption strength may be selected at least in part as a function of parameters such as device operating system type and transport capabilities, as well as other factors influencing the ability of a given device to support the desired encryption level.
It should be understood that the above-noted communication types are only examples, and numerous other communications may be used in other embodiments. Additional details regarding the above-noted AES techniques as well as examples of other cryptographic techniques suitable for use in providing secure communications in embodiments of the invention can be found in A. J. Menezes et al., Handbook of Applied Cryptography, CRC Press, 1997, which is incorporated by reference herein.
As indicated above, a wide variety of different verification types may be made available for user selection as part of one or more verification rules in a given embodiment of the invention.
It is to be appreciated that processing operations and other system functionality such as that described in conjunction with
Also, the particular processing operations and other system functionality described in conjunction with the flowcharts of
It was noted above that in some embodiments, two or more user devices are utilized. For example, in the remote verification process of
An exemplary communication system in an embodiment of this type is shown in
The primary device 702 and the secondary device 704 are both configured to run the rules-based multi-factor verification application.
The verification platform 705 is configured to include a verification platform API and a verification platform server as noted above, but may comprise additional or alternative components in other embodiments.
In the
The use of the verification platform as an intermediary between the primary and secondary devices allows for enhanced communication security, thereby reducing vulnerability to hacking.
In other embodiments, the primary and secondary devices pair with one another locally rather than through the verification platform. In such embodiments, the primary and secondary devices connect to one another using Bluetooth or a Near Field Communication (NFC) interface. For example, a user may have a smartphone which connects to a wearable verification device. The wearable verification device includes firmware and provides key management and cryptography, making the wearable verification device suitable for use as a secure element for user verification. The wearable verification device may take a number of physical form factors, such as an adhesive label, a credit card or smartcard, key fob, tag, smartwatch or other wearable device with an embedded processing device.
The primary device 702 in the
In some embodiments, other types of verification in addition to or in place of the above-described voice, face, location, motion and third party verification can be used. For example, numeric token verification or approve/decline verification may be used. Numeric token verification can be implemented by sending digits to the secondary device. The digits must then be entered into the primary device within a predetermined length of time to determine verification. Approve/decline verification can be implemented by sending a message with the option to either approve or decline to the secondary device. From the secondary device, a user can allow verification by selecting approve or can deny verification by selecting decline. Other types of verification based on behavioral knowledge, gestures, colors or other types of information may be used, in any combination.
The communication system 700 or portions thereof may be implemented using one or more processing platforms. For example, verification platform 705 may be implemented on a processing platform comprising a plurality of networked processing devices. An example of such a processing platform is processing platform 800 shown in
The processing platform 800 in this embodiment comprises a portion of system 700 and includes a plurality of processing devices, denoted 802-1, 802-2, 802-3, . . . 802-K, which communicate with one another over a network 804.
The network 804 may comprise any type of network, including by way of example a global computer network such as the Internet, a wide area network (WAN), a local area network (LAN), a satellite network, a telephone or cable network, a cellular network, a wireless network such as WiFi or WiMAX, or various portions or combinations of these and other types of networks.
The processing device 802-1 in the processing platform 800 comprises a processor 810 coupled to a memory 812. The processor 810 may comprise a microprocessor, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other type of processing circuitry, as well as portions or combinations of such circuitry elements, and the memory 812, which may be viewed as an example of a processor-readable storage medium having executable computer program code embodied therein, may comprise random access memory (RAM), read-only memory (ROM) or other types of memory, in any combination.
Also included in the processing device 802-1 is network interface circuitry 814, which is used to interface the processing device with the network 804 and other system components, and may comprise one or more conventional transceivers.
The other processing devices 802 of the processing platform 800 are assumed to be configured in a manner similar to that shown for processing device 802-1 in the figure.
Again, the particular processing platform 800 shown in the figure is presented by way of example only, and communication system 700 may include additional or alternative processing platforms, as well as numerous distinct processing platforms in any combination, with each such platform comprising one or more computers, servers, storage devices or other processing devices.
It should therefore be understood that in other embodiments different arrangements of additional or alternative elements may be used. At least a subset of these elements may be collectively implemented on a common processing platform, or each such element may be implemented on a separate processing platform.
Also, numerous other arrangements of computers, servers, storage devices or other components are possible in the communication system 700. Such components can communicate with other elements of the communication system 700 over any type of network or other communication media.
As indicated previously, components of a communication system as disclosed herein can be implemented at least in part in the form of one or more software programs stored in memory and executed by a processor of a processing device such as one of the processing devices 802. As noted above, a memory or other storage device having such program code embodied therein is an example of what is more generally referred to herein as a processor-readable storage medium.
Articles of manufacture comprising such processor-readable storage media are considered embodiments of the present invention. A given such article of manufacture may comprise, for example, a storage device such as a storage disk, a storage array or an integrated circuit containing memory. The term “article of manufacture” as used herein should be understood to exclude transitory, propagating signals.
It should again be emphasized that the above-described embodiments of the invention are presented for purposes of illustration only. Many variations and other alternative embodiments may be used. For example, the particular types and arrangements of user devices, verification platforms and applications used in a given embodiment can be varied, as can the particular types of messaging or other communications exchanged between system components. Also, a wide variety of different types of verification rules, verification types, sequences and security levels may be used other than those explicitly described herein. Moreover, the various assumptions made above in the course of describing the illustrative embodiments should also be viewed as exemplary rather than as requirements or limitations of the invention. Numerous other alternative embodiments within the scope of the appended claims will be readily apparent to those skilled in the art.
The present application is a continuation of U.S. patent application Ser. No. 14/080,327 filed Nov. 14, 2013, and entitled “Local and Remote Verification,” which claims the priority of U.S. Provisional Patent Application Ser. Nos. 61/726,778, 61/726,788 and 61/726,908, filed Nov. 15, 2012, and which is also a continuation-in-part of U.S. patent application Ser. Nos. 14/025,333 and 14/025,377, filed Sep. 12, 2013, which are incorporated by reference herein. The present application is also related to commonly-assigned U.S. patent application Ser. Nos. 14/080,290 and 14/080,306, which are incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
4449189 | Feix et al. | May 1984 | A |
4975969 | Tal | Dec 1990 | A |
4993068 | Piosenka et al. | Feb 1991 | A |
5235642 | Wobber et al. | Aug 1993 | A |
5761329 | Chen et al. | Jun 1998 | A |
6463474 | Fuh et al. | Oct 2002 | B1 |
6671812 | Balasubramaniam et al. | Dec 2003 | B1 |
6724919 | Akiyama et al. | Apr 2004 | B1 |
6856800 | Henry et al. | Feb 2005 | B1 |
6943682 | Dowens | Sep 2005 | B1 |
7173604 | Marvit et al. | Feb 2007 | B2 |
7206022 | Miller et al. | Apr 2007 | B2 |
7222361 | Kemper | May 2007 | B2 |
7231068 | Tibor | Jun 2007 | B2 |
7231657 | Honarvar et al. | Jun 2007 | B2 |
7243245 | Pagan et al. | Jul 2007 | B2 |
7322040 | Olson et al. | Jan 2008 | B1 |
7363494 | Brainard et al. | Apr 2008 | B2 |
7434041 | Srivastava | Oct 2008 | B2 |
7480655 | Thomas et al. | Jan 2009 | B2 |
7802278 | Kweon | Sep 2010 | B2 |
7861081 | Yeap et al. | Dec 2010 | B2 |
7882386 | Potnis et al. | Feb 2011 | B1 |
7970724 | Hauser | Jun 2011 | B1 |
8001383 | Hughes | Aug 2011 | B2 |
8104076 | Lam et al. | Jan 2012 | B1 |
8201237 | Doane et al. | Jun 2012 | B1 |
8222357 | Chen | Jul 2012 | B2 |
8244211 | Clark | Aug 2012 | B2 |
8249577 | Chmaytelli et al. | Aug 2012 | B2 |
8347370 | Headley | Jan 2013 | B2 |
8370640 | Adams et al. | Feb 2013 | B2 |
8386773 | Sherkin et al. | Feb 2013 | B2 |
8621551 | Zhang | Dec 2013 | B2 |
8689294 | Thakur et al. | Apr 2014 | B1 |
8776190 | Cavage et al. | Jul 2014 | B1 |
8819182 | Howarter et al. | Aug 2014 | B2 |
8850524 | Morris et al. | Sep 2014 | B2 |
9280645 | Alikhani | Mar 2016 | B1 |
9323911 | Alikhani | Apr 2016 | B1 |
20010047472 | Huntington et al. | Nov 2001 | A1 |
20020112176 | Murray | Aug 2002 | A1 |
20030084282 | Taruguchi | May 2003 | A1 |
20040250135 | Haddad et al. | Dec 2004 | A1 |
20050044044 | Burger et al. | Feb 2005 | A1 |
20060015725 | Voice et al. | Jan 2006 | A1 |
20060018481 | Nagano et al. | Jan 2006 | A1 |
20060137016 | Margalit et al. | Jun 2006 | A1 |
20060248083 | Sack et al. | Nov 2006 | A1 |
20070192877 | Yoo et al. | Aug 2007 | A1 |
20070300292 | Scipioni et al. | Dec 2007 | A1 |
20080155658 | Leinonen | Jun 2008 | A1 |
20080180212 | Aikawa et al. | Jul 2008 | A1 |
20080270103 | Kaszynski | Oct 2008 | A1 |
20080282324 | Hoal | Nov 2008 | A1 |
20090052870 | Marsh | Feb 2009 | A1 |
20090077644 | Hammell et al. | Mar 2009 | A1 |
20090144810 | Gilboy | Jun 2009 | A1 |
20090220216 | Marsh | Sep 2009 | A1 |
20090309698 | Headley et al. | Dec 2009 | A1 |
20090320123 | Yu et al. | Dec 2009 | A1 |
20100005529 | Hemade | Jan 2010 | A1 |
20100019026 | Hochfield et al. | Jan 2010 | A1 |
20100106977 | Persson et al. | Apr 2010 | A1 |
20100212004 | Fu | Aug 2010 | A1 |
20100299721 | Awamoto et al. | Nov 2010 | A1 |
20110078790 | Fazunenko et al. | Mar 2011 | A1 |
20110154120 | Kim | Jun 2011 | A1 |
20110154452 | Novack | Jun 2011 | A1 |
20110258682 | Yin | Oct 2011 | A1 |
20110314389 | Meredith et al. | Dec 2011 | A1 |
20120011575 | Cheswick et al. | Jan 2012 | A1 |
20120019361 | Ben Ayed | Jan 2012 | A1 |
20120047563 | Wheeler | Feb 2012 | A1 |
20120054875 | Antill | Mar 2012 | A1 |
20120124662 | Baca et al. | May 2012 | A1 |
20120171990 | Williams et al. | Jul 2012 | A1 |
20120182380 | Ohmae et al. | Jul 2012 | A1 |
20120222093 | Badenes | Aug 2012 | A1 |
20120266258 | Tuchman et al. | Oct 2012 | A1 |
20120317083 | Saxena et al. | Dec 2012 | A1 |
20130044055 | Karmarkar et al. | Feb 2013 | A1 |
20130055346 | Singh et al. | Feb 2013 | A1 |
20130055362 | Rathbun | Feb 2013 | A1 |
20130078952 | Yang | Mar 2013 | A1 |
20130098991 | Li | Apr 2013 | A1 |
20130144788 | Sherkin et al. | Jun 2013 | A1 |
20130227651 | Schultz et al. | Aug 2013 | A1 |
20130227677 | Pal et al. | Aug 2013 | A1 |
20130263211 | Neuman et al. | Oct 2013 | A1 |
20140059675 | Batie, Jr. et al. | Feb 2014 | A1 |
20140187149 | Lortz et al. | Jul 2014 | A1 |
20140331292 | Krieger et al. | Nov 2014 | A1 |
20140372985 | Levin et al. | Dec 2014 | A1 |
20140372986 | Levin et al. | Dec 2014 | A1 |
20140379920 | Nathwani et al. | Dec 2014 | A1 |
20150034718 | Marshall Chesney et al. | Feb 2015 | A1 |
20150310159 | Raghavan | Oct 2015 | A1 |
Number | Date | Country |
---|---|---|
2385679 | Nov 2011 | EP |
2004075097 | Sep 2004 | WO |
2008094136 | Aug 2008 | WO |
2008144943 | Dec 2008 | WO |
2011157538 | Dec 2011 | WO |
Entry |
---|
Google Play, “Battlenet Mobile Authenticator,” https://play.google.com/store/apps/details?id=com.blizzard.bma&hl=en, Mar. 2012, 2 pages. |
A. Bhargav-Spantzel et al., “Privacy Preserving Multi-Factor Authentication with Biometrics,” 2nd ACM Workshop on Digital Identity Management (DIM), Nov. 2006, pp. 63-71. |
A. De Angeli, “VIP: A Visual Approach to User Authentication,” Proceedings of the Working Conference on Advanced Visual Interfaces (AVI '02), 2002, pp. 316-323. |
Number | Date | Country | |
---|---|---|---|
61726778 | Nov 2012 | US | |
61726788 | Nov 2012 | US | |
61726908 | Nov 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14080327 | Nov 2013 | US |
Child | 14991614 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14025333 | Sep 2013 | US |
Child | 14080327 | US | |
Parent | 14025377 | Sep 2013 | US |
Child | 14025333 | US |