At least one embodiment of the present disclosure pertains to systems and techniques for validating security certificates, and more particularly, to techniques for creating a secure list of security certificates received by a point-of-sale (POS) device during payment transactions.
Some merchants initiate payment transactions with consumers by using a mobile POS device belonging to the merchant, such as a smartphone or tablet computer (e.g., Apple iPad or the like). For example, a small, mobile card reader can be plugged into the audio jack of the mobile POS device, and point-of-sale (POS) software can be executed by the mobile POS device to facilitate payment transactions completed using a payment card (e.g., credit card or debit card). The merchant swipes the consumer's payment card through the card reader, and the card reader communicates the card's data to the POS software in the POS device. The POS software can then confirm the authenticity of the card and communicate with a remote payment authorization system to obtain authorization for the transaction.
This type of payment model, however, requires that a number of security-related issues be addressed. For example, cryptographic protocols, such as Secure Sockets Layer (SSL) and Transport Layer Security (TLS), are often used to secure communications transmitted between devices over a computer network. But attackers often attempt to hack these protocols, for example, by installing malicious software (“malware”) or transmitting bogus security certificates to a device. Consequently, a problem exists, particularly (though not exclusively) for devices that participate in electronic payment transactions, of how to know that security certificates received by a mobile device are valid and that sensitive information is protected from these threats.
One or more embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements.
In this description, references to “an embodiment,” “one embodiment,” or the like, mean that the particular feature, function, structure, or characteristic being described is included in at least one embodiment introduced here. Occurrences of such phrases in this specification do not necessarily all refer to the same embodiment, nor are the embodiments referred to herein necessarily mutually exclusive.
In a payment transaction involving a card reader connected to a mobile POS device, confidential or sensitive data may be communicated between the POS device and a remote computing system over a computer network. The confidential or sensitive data can include, for example, a passcode, card number, expiration date, card verification value (CVV), etc. In most instances, the computing system is part of a payment authorization system that is able to facilitate payment transactions by validating the data. But the POS device could also be targeted by an attacker that attempts to intercept the data (e.g., by installing malware or providing a bogus SSL certificate) transmitted by the POS device. For example, operating system (OS) libraries and POS device databases are common targets for interference by intra-application (i.e., “in-app”) hooking frameworks.
It is desirable, therefore, to determine whether security certificates received by the POS device from other computing devices during payment transactions are valid. Such protection can be provided by, among other things, intercepting security certificates before they are received by an OS-provided library or an OS-supported executable (e.g., a security layer), storing copies of the security certificates (e.g., in a secure environment of the mobile POS device), and uploading the copies to a validation system (which may be part of a payment processing system) for validation. The security certificates can be, for example, Secure Sockets Layer (SSL) certificates and/or Transport Layer Security (TLS) certificates.
More specifically, in accordance with the technique introduced here, a security certificate, upon being received by the POS device, is diverted to a payment application executing in the POS device rather than to the security layer of the main OS of the POS device. This can be accomplished, for example, by modifying the import address table maintained by the OS, which causes a function call to be made to the payment application rather than to the security layer. The payment application is configured to generate a copy of the security certificate and store it in a secure list of certificates received by the POS device. Each of the security certificates within the list may be associated with a different payment transaction conducted on the POS device. Unlike traditional validation systems that maintain a library of security certificates that are validated by trusted certificate authorities, the list only includes copies of those security certificates actually received or “seen” by the POS device. Because the copy is stored within a secure environment, the technique is not vulnerable to attackers who attempt to fool the POS device by disrupting the handshake process.
Some or all of the security certificates in the list are then uploaded to the validation system (e.g., periodically or from time to time) for validation. The validation system analyzes the security certificates and, for any certificates determined not to be valid, performs or triggers a remedial action. For example, the validation system may disable the payment application in the POS device, prevent any further transactions with the computing device responsible for transmitting the invalid certificate, notify the merchant, etc. Unlike traditional validation techniques, the technique introduced herein validates security certificates received by a mobile device within a secure environment (e.g., a validation system distinct from the POS device). Moreover, the technique allows threats to sensitive information, such as financial information necessary for electronic payment transactions, to be more readily and effectively identified.
Accordingly, introduced here is a technique for generating a secure list of security certificates that have been used to facilitate completion of various payment transactions on the POS device. A trusted payment module executed in the POS application is preferably used to intercept the security certificates before being received and validated by the security layer of the OS. The trusted payment module may be software, such as a part of the payment application, as henceforth assumed in this description to facilitate explanation. Note, however, that the trusted payment module could alternatively be dedicated hardware, such as an integrated circuit (IC) chip or chipset in the POS device, or a combination of software and dedicated hardware.
Upon receiving a security certificate, the OS-enabled security layer of the POS device is traditionally configured to compare the certificate to a library of trusted certificates and place a function call to a handshake function that allows the POS device to authenticate itself and establish a secure connection with another device. Here, however, the security layer of the POS device is configured to divert a security certificate that has been received from another computing device to the certificate management module of the payment application upon receiving the certificate. Rather than place a function call to the handshake function supported by the OS as would typically occur, the security layer instead places a function call to the secure application code. This can be accomplished by modifying the import address table accessed by the security layer. More specifically, a function “hook” can be implemented in the import address table. “Hooking,” as referred to herein, covers a range of techniques used to alter the behavior of software (e.g., the security layer of the OS) by intercepting a function call that is passed between software components. The modified code that handles the intercepted function call is called a “hook.” Other interposition techniques could also be used, such as direct manipulation of shared data structures or by placing triggered events directly into the application event queue.
The payment application is able to generate a secure list of security certificates, which can be subsequently analyzed to determine whether any of the certificates are unauthorized and invalid. In some embodiments, the payment application is configured to transmit the list of security certificates to a payment processing system for validation upon the expiration of a predetermined duration of time or receipt of an upload request input at the POS device or payment processing system.
In some embodiments, the payment application is communicatively coupled to a payment processing system operated by a payment processing entity. The payment processing system can be configured to facilitate processing of the payment transaction between the merchant and a consumer. For example, the payment processing system may maintain one or more accounts for the consumer, where each account is associated with a different payment card (e.g., credit card, debit card). Further yet, the payment processing entity may not be the issuer of some or all of the payment cards involved in the transactions that it facilitates; for example, the payment processing entity may be a business entity, which is not necessarily a payment card issuer, dedicated to facilitating card based payment transactions. As another example, the payment processing system may be configured to validate security certificates transmitted by the POS device. If any of the security certificates is determined to be invalid (i.e., unauthorized), the payment processing system can identify the invalid certificate as a candidate for further analysis, flag the responsible computing system as an attacker, prevent receipt of any additional security certificates from the responsible computing system, etc.
A certificate management module (or some other part of the payment application) may also be configured to generate a checksum of at least a portion of the modified import address table maintained by the OS. For instance, the portion may include only those function address references that are used in combination with sensitive information or are considered most vulnerable to an attack (e.g., by malware). The checksum can be generated using any cryptographic hash function, such as an MD5 message-digest algorithm. In some embodiments, the certificate management module is also configured to identify and remap those function address references in the import address table that have been randomly arranged by address space layout randomization (ASLR), a security technique employed to protect against buffer overflow attacks. The checksum, which allows the payment application and/or payment processing system to determine whether the import address table includes an unauthorized modification, is generally more reliable in highly homogeneous runtime environments, such as Apple iOS. Homogeneous runtime environments are those environments that share many of the same fundamental runtime characteristics.
Many payment transactions require the POS device 2 to exchange confidential or sensitive information with another computing system. For example, once card data has been read from the card 3, it can be passed by the card reader 1 to the payment application 4, which is able to forward the card data along with other information about the payment transaction (e.g., transaction amount, date and time, merchant identification) to a remote payment authorization system 10 to request authorization of the payment. As another example, a personal identification number (PIN) may be provided to the card reader 1, which could compare it against PIN data read from the card 3. A payment processing system 9 may be in the transaction path between the POS device 2 and the payment authorization system 10. The payment authorization system 10 may include multiple business entities and multiple computers and/or other devices. For example, the payment authorization system 10 may include one or more banks and/or other financial institutions, including a payment card issuer, an acquirer, a credit card network (e.g., Visa or MasterCard), etc. As described below, various protocols, such as SSL and TLS, can be used in an effort to secure communications transmitted over a computer network 8 between the POS device 2 and the payment authorization system 10.
For example, the payment application 4 may attempt to transmit sensitive financial information (e.g., cardholder name, card/account number, expiration date) to the remote server computer 12 for validation. Once the information has been received by the remote server computer 12 and the transaction has been authorized, the remote server computer 12 may transmit a notification to the POS device 2 indicating that the payment transaction has been authorized. Oftentimes, other information (e.g., information read from the card 3 by the card reader 1) is also used to complete the transaction. But this process is vulnerable to attackers who are able to fool the POS device 2 and/or payment application and disrupt the traditional handshake process.
In accordance with the technique introduced here, the POS device 2 includes a certificate management module 15 that communicates with the OS 17 via the security layer 18 and the payment application 4. The certificate management module 15 may also communicate with other components of the OS 17, such as the system libraries 19. The certificate management module 15 can be software, hardware, or a combination thereof. As illustrated by
Rather than validate the security certificate using the library of trusted certificates 13, the payment application 4 is configured to prevent the security certificate from being initially handled by the OS 17 (e.g., using the OS libraries 19 and/or library of trusted certificates 13). More specifically, the certificate management module 15 is configured to generate copies of security certificates received by the POS device 2 and to upload those copies to a remote validation system (e.g., payment processing system 9) for validation. Thus, each security certificate received by the POS device 2 is preferably validated at least twice: (1) when the security certificate is validated against the library of trusted certificates 13 by the security layer 18 of the OS 17 in the POS device 2; and (2) when the security certificate is uploaded to the remote validation system. This allows the validity of the security certificate to be established even if the security of the POS device 2 has been compromised.
Upon the POS device's receiving the security certificate, a function call is directed from the security layer 18 of the POS device 2 to the payment application 4 rather than to a security handshake function (step 503). The security layer 18 can be an SSL layer or a TLS layer, for example. As illustrated in
Reception of the security certificate allows the security layer of the POS device 2 to complete the verification process as would conventionally occur. As described above, the POS device 2 is able to verify the certificate by comparing it against a library of certificates 13 belonging to validated (i.e., trusted) certificate authorities (step 506). In some embodiments, the POS device 2 sends its own security certificate to the remote server computer 12 upon establishing the validity of the received certificate (step 507). The remote server computer 12 may be configured to verify the security certificate belonging to the POS device 2 by comparing the cryptographic key included in the certificate with a store of keys 14 (step 508). Finally, the remote server computer 12 grants access to the POS device 2 and a secure connection is established, which allows the POS device 2 to transmit sensitive information to the remote server computer 12 for authentication (step 509).
The certificate management module 15 is configured to store a copy of the received certificate in a data structure (step 603). The data structure can be stored in the POS device 2, card reader 1, or a cloud-based storage 7. The data structure preferably includes only those security certificates received by the POS device 2 during payment transactions. Each security certificate, meanwhile, represents a connection formed with a different remote server computer 12. After storing the copy of the certificate, the certificate management module 15 places a function call to the security layer 18 that sends the certificate to the security layer 18, which allows the security layer 18 to begin the conventional authentication process (step 604).
Once the security certificate has been received, the security layer 18 completes the authentication process by validating the certificate (step 605) and establishing a secure connection between the POS device 2 and the remote server computer 12 (step 606). The certificate management module 15 of the payment application 4 is configured to transmit the list of certificates (e.g., to a payment processing system) in response to an event or predetermined input (step 607). The event can be, for example, expiration of a predetermined duration of time, an upload request input at the POS device or received from the payment processing system, reception of a new security certificate, the number of certificates in the list reaching a predetermined value, the storage facility that stores the certificates reaching a specified fraction of its maximum capacity, etc. Alternatively, the certificate management module 15 may be configured to transmit a copy of each security certificate as the certificate is received, thereby eliminating the need to create and store certificates. A payment processing system 9 is able to analyze the security certificates and determine whether any of the certificates is invalid. If a certificate is found to be invalid (i.e., unauthorized), the payment processing system 9 can indicate the security of the POS device has been compromised (e.g., by generating a notification) and that additional action(s) may be necessary to address the threat.
In some embodiments, as illustrated in
The checksum can be generated across all loaded programs or some subset of loaded programs, including the main executable of the payment application 4. There may be instances where only specific files or programs (e.g., those that handle sensitive financial information) are included in the checksum. However, the checksum is preferably applied across the entire runtime environment. In some embodiments, a checksum is generated for each specific build of the payment application running on a given POS device. Moreover, a back-end system, such as the payment processing system 9, may be able to gather the checksum values from numerous POS devices that are known to indicate an attacker has tampered with the runtime environment. This back-end system can be trained (e.g., using various machine learning techniques) to identify anomalous checksum values with little or no manual intervention.
The payment application is generally able to determine more consistently and reliably whether an unauthorized modification of the runtime environment is present based on the checksum when the main OS 17 is highly homogeneous. The checksum can be generated by using any cryptographic hash function, such as an MD5 message-digest algorithm, although circumstances may dictate a particular hash function is necessary or desirable. To generate reliable checksum values, the payment application in the illustrated process flow also identifies and remaps one or more function address references within the import address table that have been randomly arranged by ASLR (step 706). ASLR randomly arranges the address space positions of key areas of a process to prevent an attacker from reliably jumping to, for example, an exploited function in memory. Therefore, the address space positions must be remapped to their original locations for the checksum value to accurately identify modification(s) to the import address table.
The payment application also transmits the copy of the security certificate, the checksum, or both to one or more external systems for validation (step 707). For example, the copy of the certificate and the checksum could be transmitted to the payment processing system 9. The payment application 4 subsequently receives an indication the security certificate and/or checksum has been verified (step 708). Reception of the indication, which specifies whether the security of the POS device 2 has been compromised, may be required before the payment transaction is allowed to be completed.
In the illustrated embodiment, the architecture 800 includes one or more processors 810, memory 811, one or more communication devices 812, and one or more input/output (I/O) devices 813, all coupled to each other through an interconnect 814. The interconnect 814 may be or include one or more conductive traces, buses, point-to-point connections, controllers, adapters and/or other conventional connection devices. The processor(s) 810 may be or include, for example, one or more general-purpose programmable microprocessors, microcontrollers, application specific integrated circuits (ASICs), programmable gate arrays, or the like, or a combination of such devices. The processor(s) 810 control the overall operation of the processing device 800.
Memory 811 may be or include one or more physical storage devices, which may be in the form of RAM, read-only memory (ROM) (which may be erasable and programmable), flash memory, miniature hard disk drive, or other suitable type of storage device, or a combination of such devices. Memory 811 may store data and instructions that configure the processor(s) 810 to execute operations in accordance with the techniques described above. The communication devices 812 may be or include, for example, an Ethernet adapter, cable modem, Wi-Fi adapter, cellular transceiver, Bluetooth or BLE transceiver, or the like, or a combination thereof. Depending on the specific nature and purpose of the processing device 800, the I/O devices 813 can include devices such as a display (which may be a touch screen display), audio speaker, keyboard, mouse or other pointing device, microphone, camera, etc.
In the case of the POS device 2, the communication devices 812 can be or include, for example, a cellular telecommunications transceiver (e.g., 3G or 4G/LTE), Wi-Fi transceiver, Bluetooth or BLE transceiver, or the like, or a combination thereof. In the case of the payment processing system 10, the communication devices 812 can be or include, for example, any of the aforementioned types of communication devices, a wired Ethernet adapter, cable modem, DSL modem, or the like, or a combination of such devices. Additionally, the POS device 2 includes a card interface or connector (not shown) that connects to the card reader 1 as described above. The connector can be, for example, a standard audio jack, micro-USB connector, or any other known or convenient type of connector. The card reader 1 is a mechanism for reading data from a payment card and may be, for example, a magnetic stripe reader, smartcard IC chip reader, optical code reader, radio frequency identification (RFID) tag reader, or other similar device.
Unless contrary to physical possibility, it is envisioned that (i) the methods/steps described herein may be performed in any sequence and/or in any combination, and that (ii) the components of respective embodiments may be combined in any manner.
The machine-implemented operations described above can be implemented by programmable circuitry programmed/configured by software and/or firmware, or entirely by special-purpose circuitry, or by a combination of such forms. Such special-purpose circuitry (if any) can be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), etc.
Software to implement the techniques introduced here may be stored on a machine-readable storage medium and may be executed by one or more general-purpose or special-purpose programmable microprocessors. A “machine-readable medium”, as the term is used herein, includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, any device with one or more processors, etc.). For example, a machine-accessible medium includes recordable/non-recordable media (e.g., read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
Note that any and all of the embodiments described above can be combined with each other, except to the extent that it may be stated otherwise above or to the extent that any such embodiments might be mutually exclusive in function and/or structure.
Although the present invention has been described with reference to specific exemplary embodiments, it will be recognized that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
5204902 | Reeds, III et al. | Apr 1993 | A |
5241599 | Bellovin et al. | Aug 1993 | A |
5903652 | Mital | May 1999 | A |
6105012 | Chang et al. | Aug 2000 | A |
6148404 | Yatsukawa | Nov 2000 | A |
6772331 | Hind et al. | Aug 2004 | B1 |
6925169 | Habu | Aug 2005 | B2 |
7302564 | Berlin | Nov 2007 | B2 |
7333602 | Habu | Feb 2008 | B2 |
7788491 | Dawson | Aug 2010 | B1 |
7929702 | Brown et al. | Apr 2011 | B2 |
8127345 | Gregg et al. | Feb 2012 | B2 |
8254579 | Morgan et al. | Aug 2012 | B1 |
8281998 | Tang et al. | Oct 2012 | B2 |
8472629 | Hamachi | Jun 2013 | B2 |
8494165 | Monica et al. | Jul 2013 | B1 |
8788825 | Le et al. | Jul 2014 | B1 |
8811895 | Reisgies et al. | Aug 2014 | B2 |
8874913 | Monica et al. | Oct 2014 | B1 |
8880881 | Morel et al. | Nov 2014 | B2 |
8978975 | Barnett | Mar 2015 | B2 |
8990121 | Guise et al. | Mar 2015 | B1 |
9082119 | Ortiz et al. | Jul 2015 | B2 |
9123041 | Reisgies et al. | Sep 2015 | B2 |
9124419 | Bar-El | Sep 2015 | B2 |
9141977 | Davis et al. | Sep 2015 | B2 |
9324098 | Agrawal et al. | Apr 2016 | B1 |
9519901 | Dorogusker | Dec 2016 | B1 |
9665867 | Guise et al. | May 2017 | B2 |
9727862 | O'Connell et al. | Aug 2017 | B2 |
9754112 | Moritz | Sep 2017 | B1 |
9805370 | Quigley et al. | Oct 2017 | B1 |
9898728 | Brudnicki et al. | Feb 2018 | B2 |
9940612 | Hamilton et al. | Apr 2018 | B1 |
10115137 | Ceribelli et al. | Oct 2018 | B2 |
10163107 | White et al. | Dec 2018 | B1 |
10366378 | Han et al. | Jul 2019 | B1 |
10373167 | Zovi et al. | Aug 2019 | B2 |
10475034 | Guise et al. | Nov 2019 | B2 |
10482247 | Aime | Nov 2019 | B2 |
10546302 | Zovi et al. | Jan 2020 | B2 |
20020035695 | Riches et al. | Mar 2002 | A1 |
20020188870 | Gong et al. | Dec 2002 | A1 |
20020194219 | Bradley et al. | Dec 2002 | A1 |
20030018878 | Dorward et al. | Jan 2003 | A1 |
20030177353 | Hiltgen | Sep 2003 | A1 |
20040094624 | Fernandes et al. | May 2004 | A1 |
20040104268 | Bailey | Jun 2004 | A1 |
20040153644 | McCorkendale et al. | Aug 2004 | A1 |
20060083187 | Dekel | Apr 2006 | A1 |
20060084448 | Halcrow et al. | Apr 2006 | A1 |
20060224892 | Brown et al. | Oct 2006 | A1 |
20070067643 | Zhuk et al. | Mar 2007 | A1 |
20070141984 | Kuehnel et al. | Jun 2007 | A1 |
20080016537 | Little et al. | Jan 2008 | A1 |
20080017711 | Adams et al. | Jan 2008 | A1 |
20080244714 | Kulakowski et al. | Oct 2008 | A1 |
20090198618 | Chan et al. | Aug 2009 | A1 |
20100005132 | Choi et al. | Jan 2010 | A1 |
20100017602 | Bussard et al. | Jan 2010 | A1 |
20100165981 | Kuppuswamy et al. | Jul 2010 | A1 |
20100260069 | Sakamoto et al. | Oct 2010 | A1 |
20100325735 | Etchegoyen | Dec 2010 | A1 |
20110030040 | Ronchi et al. | Feb 2011 | A1 |
20120124375 | Truskovsky et al. | May 2012 | A1 |
20120143706 | Crake et al. | Jun 2012 | A1 |
20120265685 | Brudnicki et al. | Oct 2012 | A1 |
20120330769 | Arceo | Dec 2012 | A1 |
20130023240 | Weiner | Jan 2013 | A1 |
20130119130 | Braams | May 2013 | A1 |
20130144792 | Nilsson et al. | Jun 2013 | A1 |
20130173475 | Lund | Jul 2013 | A1 |
20130204793 | Kerridge et al. | Aug 2013 | A1 |
20130227647 | Thomas et al. | Aug 2013 | A1 |
20130268378 | Yovin | Oct 2013 | A1 |
20130268443 | Petrov et al. | Oct 2013 | A1 |
20130328801 | Quigley et al. | Dec 2013 | A1 |
20130332367 | Quigley et al. | Dec 2013 | A1 |
20140032415 | Lee et al. | Jan 2014 | A1 |
20140040139 | Brudnicki et al. | Feb 2014 | A1 |
20140075522 | Paris et al. | Mar 2014 | A1 |
20140158768 | Ray et al. | Jun 2014 | A1 |
20140236824 | Amaya Calvo et al. | Aug 2014 | A1 |
20140237545 | Mylavarapu et al. | Aug 2014 | A1 |
20140241523 | Kobres et al. | Aug 2014 | A1 |
20140279552 | Ortiz et al. | Sep 2014 | A1 |
20150012436 | Poole et al. | Jan 2015 | A1 |
20150032635 | Guise | Jan 2015 | A1 |
20150051960 | Barbaria et al. | Feb 2015 | A1 |
20150199689 | Kumnick et al. | Jul 2015 | A1 |
20150235212 | Ortiz et al. | Aug 2015 | A1 |
20150281236 | Batta et al. | Oct 2015 | A1 |
20150324792 | Guise et al. | Nov 2015 | A1 |
20160063480 | Ballesteros et al. | Mar 2016 | A1 |
20160104155 | Mcgaugh et al. | Apr 2016 | A1 |
20160196559 | Einhorn et al. | Jul 2016 | A1 |
20160307089 | Wurmfeld et al. | Oct 2016 | A1 |
20160307189 | Zarakas et al. | Oct 2016 | A1 |
20170068955 | Agarwal | Mar 2017 | A1 |
20170161739 | Singh et al. | Jun 2017 | A1 |
20170278104 | O'Connell et al. | Sep 2017 | A1 |
20180060855 | Keshan et al. | Mar 2018 | A1 |
20180096330 | Hamilton et al. | Apr 2018 | A1 |
20180130051 | Matthews et al. | May 2018 | A1 |
20180174131 | Brudnicki et al. | Jun 2018 | A1 |
20180181939 | Hamilton et al. | Jun 2018 | A1 |
20180332016 | Pandey et al. | Nov 2018 | A1 |
20190095968 | Ceribelli et al. | Mar 2019 | A1 |
20190287108 | White et al. | Sep 2019 | A1 |
20210144213 | Momchilov | May 2021 | A1 |
20210192507 | Guise et al. | Jun 2021 | A1 |
Number | Date | Country |
---|---|---|
2020210294 | Aug 2020 | AU |
2021202106 | Jun 2022 | AU |
2 860 757 | Jul 2013 | CA |
2 948 481 | Nov 2015 | CA |
2 996 095 | Mar 2016 | EP |
3 866 092 | Aug 2021 | EP |
2001-338239 | Dec 2001 | JP |
2001-357464 | Dec 2001 | JP |
2002-259866 | Sep 2002 | JP |
2003-500923 | Jan 2003 | JP |
2004-153711 | May 2004 | JP |
2004-166090 | Jun 2004 | JP |
2006-293747 | Oct 2006 | JP |
2006-340069 | Dec 2006 | JP |
2009-140275 | Jun 2009 | JP |
2015-201091 | Nov 2015 | JP |
2015-204010 | Nov 2015 | JP |
2017-524312 | Aug 2017 | JP |
2018-125876 | Aug 2018 | JP |
10-2015-0095588 | Aug 2015 | KR |
2009069202 | Jun 2009 | WO |
2009107349 | Sep 2009 | WO |
2013109370 | Jul 2013 | WO |
2015171939 | Nov 2015 | WO |
2018063812 | Apr 2018 | WO |
Entry |
---|
Denning, E.D., “Field Encryption and Authentication”, Advances in Cryptology: Proceedings of Crypto, pp. 1-17 (1983). |
Denning, R.E.D., “Cryptography and Data Security,” Purdue University (1982), pp. 1-199 [Part-1]. |
Denning, R.E.D., “Cryptography and Data Security,” Purdue University (1982), pp. 200-209 [Part-2]. |
Koch, H.S., et al., “The application of cryptography for data base security,” AFIPS National Computer Conference, dated Jun. 7-10, 1976, pp. 97-107. |
“Security Requirements for Cryptographic Modules,” National Institute of Standards and Technology, FIPS Pub 140-1, on Jan. 11, 1994, pp. 1-69. |
Non-Final Office Action dated Dec. 14, 2018, for U.S. Appl. No. 15/282,986, of Hamilton, S., et al., filed Sep. 30, 2016. |
Examiner Requisition for Canadian Patent Application No. 2,860,757, dated Jan. 8, 2019. |
Office Action for European Patent Application No. 15 789 231.6, dated Jan. 8, 2019. |
Menezes, A.J., et al., “Handbook of Applied Cyptography, Motivation for Use of Session Keys, Key Transport Based On Public-Key Encryption, Hybrid Key Transport Protocols Using Pk Encryption,” Handbook of Applied Cryptography, CRC Press, pp. 494, 506, 507, 512, 513, 514 & 559 (Jan. 1, 1997). |
“Wi-Fi Certified Wi-Fi Direct,” Wi-Fi Alliance, published Oct. 2010, Retrieved from the Internet URL: http://www.wi-fi.org/knowledge-center/white-papers/wi-fi-certified-wi-fi%C2#AEconnect-devices, on Oct. 16, 2012, pp. 1-14. |
Non-Final Office Action dated Jan. 18, 2013, for U.S. Appl. No. 13/353,156, of Monica, D., et al., filed Jan. 18, 2012. |
Notice of Allowance dated Apr. 2, 2013, for U.S. Appl. No. 13/353,156, of Monica, D., et al., filed Jan. 18, 2012. |
Non-Final Office Action dated Jan. 29, 2014, for U.S. Appl. No. 13/353,229, of Morel, S., et al., filed Jan. 18, 2012. |
Non-Final Office Action dated Mar. 25, 2014, for U.S. Appl. No. 13/939,629, of Monica, D., et al., filed Jul. 11, 2013. |
Notice of Allowance dated Jun. 23, 2014, for U.S. Appl. No. 13/939,629, of Monica, D., et al., filed Jul. 11, 2013. |
Notice of Allowance dated Jul. 10, 2014, for U.S. Appl. No. 13/353,229, of Morel, S., et al., filed Jan. 18, 2012. |
Non-Final Office Action dated Dec. 5, 2014 for U.S. Appl. No. 14/273,447, of Guise, M.J., et al., filed May 8, 2014. |
Notice of Allowance dated Jan. 5, 2015 for U.S. Appl. No. 14/273,447, of Guise, M.J., et al., filed May 8, 2014. |
Non-Final Office Action dated Oct. 1, 2015, for U.S. Appl. No. 13/800,610, of Quigley, O.S.C., et al., filed Mar. 13, 2013. |
Final Office Action dated Apr. 22, 2016, for U.S. Appl. No. 13/800,610, of Quigley, O.S.C., et al., filed Mar. 13, 2013. |
Examiner Requisition for Canadian Patent Application No. 2,860,757, dated Jan. 23, 2017. |
Notice of Allowance dated Jan. 27, 2017 for U.S. Appl. No. 14/614,350, of Guise, M.J., et al. filed Feb. 4, 2015. |
Non Final Office Action dated Mar. 14, 2017, for U.S. Appl. No. 13/800,610, of Quigley, O.S.C., et al., filed Mar. 13, 2013. |
Non-Final Office Action dated May 19, 2017, for U.S. Appl. No. 15/282,943, of Hamilton, S., et al., filed Sep. 30, 2016. |
Final Office Action dated Nov. 15, 2017, for U.S. Appl. No. 13/800,610, of Quigley, O.S.C., et al., filed Mar. 13, 2013. |
Notice of Allowance dated Dec. 4, 2017, for U.S. Appl. No. 15/282,943, of Hamilton, S., et al., filed Sep. 30, 2016. |
Non-Final Office Action dated Dec. 22, 2017, for U.S. Appl. No. 14/273,449, of Guise, M.J., et al., filed May 8, 2014. |
Examiner Requisition for Canadian Patent Application No. 2,860,757, dated Feb. 2, 2018. |
English-language translation of Decision to Grant a Patent for Japanese Patent Application No. 2017-511546, dated Feb. 23, 2018. |
Final Office Action dated Aug. 28, 2018, for U.S. Appl. No. 14/273,449, of Guise, M.J., et al., filed May 8, 2014. |
Notice of Allowance dated Sep. 12, 2018, for U.S. Appl. No. 13/800,610, of Quigley, O.S.C., et al., filed Mar. 13, 2013. |
International Search Report and Written Opinion for International Application No. PCT/US2012/069897, dated Aug. 26, 2013. |
International Search Report and Written Opinion for International Application No. PCT/US2015/029763, dated Jul. 28, 2015. |
Extended European Search Report for European Patent Application No. 15789231.6, dated Sep. 8, 2017. |
International Search Report and Written Opinion for International Application No. PCT/US2017/051502, dated Dec. 8, 2017. |
Notice of Allowance dated May 28, 2019, for U.S. Appl. No. 14/273,449, of Guise, M.J., et al., filed May 8, 2014. |
Final Office Action dated Jun. 13, 2019, for U.S. Appl. No. 15/282,986, of Hamilton, S., et al., filed Sep. 30, 2016. |
English-language translation of Notice of reasons for refusal for Japanese Patent Application No. 2018-054964, dated Jun. 24, 2019. |
Examiner Report No. 1 for Australian Patent Application No. 2015255884, dated Jul. 12, 2019. |
Toegl et al., “An approach to introducing locality in remote attestation using near field communications”,The Journal of Supercomputing, Kluwer Academic Publishers, Bo, vol. 55, No. 2, Mar. 19, 2010, pp. 207-227. |
Notice of Allowance dated Jun. 15, 2020, for U.S. Appl. No. 15/282,986, of Hamilton, S., et al., filed Sep. 30, 2016. |
English-language translation of Search Report for Japanese Patent Application No. 2019-517212, dated Apr. 22, 2020. |
Examiner Requisition for Canadian Patent Application No. 3038728, dated Apr. 29, 2020. |
Summon to Attend Oral Proceedings for EP Application No. 15789231.6 mailed Jun. 5, 2020. |
Notice of Acceptance for Australian Patent Application No. 2015255884 dated Jun. 24, 2020. |
Notice of Allowance for Canadian Patent Application No. 2,860,757 dated Jan. 29, 2020. |
English-language translation of Decision to Grant for Japanese Patent Application No. 2018-054964, dated Jan. 31, 2020. |
Notice of Allowance dated Mar. 11, 2020, for U.S. Appl. No. 15/282,986, of Hamilton, S., et al., filed Sep. 30, 2016. |
Intention to Grant for European Application No. 15789231.6, dated Dec. 1, 2020. |
Final Office Action dated Jan. 19, 2021, for U.S. Appl. No. 15/497,388, of Guise, M.J., et al., filed Apr. 26, 2017. |
Advisory Action dated Dec. 14, 2020, for U.S. Appl. No. 15/859,217, of Funk, M., filed Dec. 29, 2017. |
Notice of Acceptance for Australian Patent Application No. 2017335584 dated Dec. 18, 2020. |
Examiner Requisition for Canadian Patent Application No. 3038728, dated Jan. 18, 2021. |
Notice of Grant for Australian Patent Application No. 2015255884 dated Oct. 22, 2020. |
Examiner Requisition for Canadian Patent Application No. 3038728, dated Aug. 12, 2022. |
Examiner Requisition for Canadian Patent Application No. 2948481, dated Sep. 9, 2022. |
Office Action for European Patent Application No. 17772820.1, dated Feb. 19, 2021. |
Examination Report No. 1 for Australian Patent Application No. 2020210294, dated Mar. 16, 2021. |
Notice of Allowance dated Aug. 11, 2020 for U.S. Appl. No. 15/897,662, of Hamilton, S., et al. filed Feb. 15, 2018. |
Non Final Office Action dated Jul. 29, 2020, for U.S. Appl. No. 15/497,388, of Guise, M.J., et al., filed Apr. 26, 2017. |
Search Report by Registered Search Organization received for Japanese Patent Application No. 2017-511546, dated Jan. 18, 2018. |
Notice of Reasons for Refusal received for Japanese Patent Application No. 2019-517212, dated Jul. 20, 2020. |
Final Office Action dated Aug. 27, 2020, for U.S. Appl. No. 15/859,217, of Funk, M. et al., filed Dec. 29, 2017. |
Advisory Action dated Aug. 30, 2018, for U.S. Appl. No. 15/282,986, of Hamilton, S., et al., filed Sep. 30, 2016. |
Notice of Allowance dated Jan. 16, 2020, for U.S. Appl. No. 15/282,986, of Hamilton, S., et al., filed Sep. 30, 2016. |
Non-Final Office Action dated Feb. 25, 2020, for U.S. Appl. No. 15/897,662, of Hamilton, S., et al., et al., filed Feb. 15, 2018. |
Restriction requirement dated Feb. 27, 2020, for U.S. Appl. No. 15/497,388, of Guise, M.J., et al., filed Apr. 26, 2017. |
Non-Final Office Action dated Mar. 3, 2020, for U.S. Appl. No. 15/859,217, of Funk, M., filed Dec. 29, 2017. |
Examination Report No. 1 for Australian Patent Application No. 2017335584, dated Jan. 22, 2020. |
Summon to Oral Proceedings mailed Jan. 31, 2020, for EP Application No. 15789231.6 filed on May 7, 2015. |
Gumyoji Ekimae School, “Line ID hijacking,” dated Sep. 2014, Retrieved from the Internet<URL:http://hello-gumyoji.jugem.jp/?month=201409>, on Jun. 22, 2020, pp. 1-5. |
Advisory Action dated Jun. 21, 2021, for U.S. Appl. No. 15/497,388, of Guise, M.J., et al., filed Apr. 26, 2017. |
Notice of Allowance dated Mar. 4, 2022, for U.S. Appl. No. 15/497,388, of Guise, M.J , et al., filed Apr. 26, 2017. |
English-language translation of Decision to Grant for Japanese Patent Application No. 2019-517212, dated Apr. 9, 2021. |
Decision to Grant for European Application No. 15789231.6, dated Apr. 9, 2021. |
Examiner Requisition for Canadian Patent Application No. 2948481, dated Apr. 16, 2021. |
Notice of Grant for Australian Patent Application No. 2017335584 dated Apr. 22, 2021. |
Notice of Acceptance for Australian Patent Application No. 2020210294, dated May 18, 2021. |
Extended European Search Report for European Patent Application No. 21165066.8, dated Jul. 14, 2021. |
Notice of Grant for Australian Patent Application No. 2020210294 dated Sep. 9, 2021. |
Examiner Requisition for Canadian Patent Application No. 3038728, dated Oct. 5, 2021. |
Examiner Requisition for Canadian Patent Application No. 2948481, dated Jan. 6, 2022. |
Examination Report No. 1 for Australian Patent Application No. 2021202106, dated Jan. 13, 2022. |
Notice of Acceptance for Australian Patent Application No. 2021202106, dated Mar. 2, 2022. |
Notice and Certificate of Grant for Australian Patent Application 2021202106, dated Jun. 30, 2022. |