Self-service authenticated printing
The use of contactless cards for authentication and verification addresses the challenge of securely printing sensitive documents from user accounts, ensuring only authorized users can print and are present at the printer, enhancing data security and privacy.
Patent Information
- Authority / Receiving Office
- HK · HK
- Patent Type
- Applications
- Current Assignee / Owner
- CAPITAL ONE SERVICES LLC
- Filing Date
- 2026-06-02
- Publication Date
- 2026-07-10
AI Technical Summary
Existing technologies face challenges in securely printing sensitive documents from user accounts without access to private printers, ensuring only authorized users can print and are physically present at the printer.
A computer-implemented method using contactless cards for authentication, where a computing device authenticates a user and verifies their presence, allowing secure printing by adding print jobs to a queue and releasing them only after successful authentication at a trusted printer.
Ensures secure and authenticated printing of documents, preventing unauthorized access and ensuring the user's presence, thereby enhancing data security and privacy.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
(19) State Intellectual Property Office (12) Invention Patent Application (10) Application Publication Number (43) Application Publication Date (21) Application Number 202480043653.X (22) Application Date 2024.05.01 (30) Priority Data 18 / 195,550 2023.05.10 US (85) PCT International Application Entering National Phase Date 2025.12.27 (86) PCT International Application Application Data PCT / US2024 / 027214 2024.05.01 (87) PCT International Application Publication Data WO2024 / 233216 EN 2024.11.14 (71) Applicant: Capital One Services LLC Address: USA (72) Inventor: Renee Giles Joshua Edwards (74) Patent Agency: Beijing Pinyuan Patent Agency Co., Ltd. 11332 Patent Attorneys Tan Yingying and Hu Bin (51) Int.Cl. G06F 3 / 12 (2006.01) H04N 1 / 00 (2006.01) H04N 1 / 44 (2006.01) (54) Invention Title Self-Service Authentication Printing (57) Abstract A computer-implemented method for self-service printing using authentication, comprising: receiving a print request for printing a document associated with an account from a server, the print request being received from a computing device. The method further comprises adding a print job for the document to a print queue associated with the account by the server. The method further comprises receiving a second request from a printer to initiate printing of the document associated with the account by the server. The method further comprises releasing the print queue associated with the account by the server to cause the printer to print the document, the release being in response to authentication of the second request. Claims 2 pages, Description 29 pages, Drawings 14 pages, CN 121511444 A 2026.02.10 CN 1 21 51 14 44 A 1. A computer implementation method for self-service printing using authentication, the computer implementation method comprising: receiving a print request for printing a document associated with an account by a server, the print request being received from a computing device; adding a print job for the document to a print queue associated with the account by the server; receiving a second request for printing the document associated with the account by the server, the second request being received from a printer; and releasing the print queue associated with the account by the server to cause the printer to print the document, the release being in response to authentication of the second request. 2. The computer implementation method of claim 1, wherein authentication of the print request by the computing device includes a first authentication routine and authentication of the second request by the printer includes a second authentication routine.3. The computer implementation method of claim 2, wherein the first authentication routine is based on settings stored in the computing device. 4. The computer implementation method of claim 2, wherein the first authentication routine is based on a contactless card. 5. The computer implementation method of claim 4, wherein the second authentication routine is based on the contactless card and the computing device. 6. The computer implementation method of claim 2, wherein the second authentication routine is based on a contactless card. 7. The computer implementation method of claim 1, further comprising, in response to receiving a print request to print the document, the server suggesting one or more printers to print the document. 8. The computer implementation method of claim 7, wherein the one or more printers are suggested based on the type of the document. 9. The computer implementation method of claim 1, wherein releasing the print queue includes the server verifying that the printer is authorized to print the document based on the type of the document. 10. A computer implementation method for self-service printing using authentication, the computer implementation method comprising: selecting a document associated with an account for printing by a computing device; generating a list of printers for printing the document by the computing device, the list being generated based on the type of the document; selecting a printer from the list by the computing device to print the document; and providing an authentication code by the computing device causing the printer to print the document in response to the printer being accessed to print the document. 11. The computer implementation method of claim 10, wherein the list is further generated based on the location of the computing device. 12. The computer implementation method of claim 10, wherein the document is a plurality of documents, and the printer list is generated based on the type of a first document from the plurality of documents. 13. The computer implementation method of claim 10, wherein the document type is at least one of a report, account statement, transaction history, check, funds transfer instruction, form, letter, offer, and combinations thereof. 14. The computer implementation method of claim 10, wherein the authentication code is provided as a machine-readable code for scanning by the printer. 15. The computer implementation method of claim 10, wherein the authentication code is received by the computing device from the server in response to contactless card-based authentication performed by the computing device.Claims 1 / 2 Page 2 CN 121511444 A 16. A computing device comprising: a processor; and a memory storing instructions, the instructions, when executed by the processor, configuring the computing device to: receive a first request to print a document associated with an account, the first request being received from a computing device; add a print job for the document to a print queue associated with the account; receive a second request to initiate printing of the document associated with the document, the second request being received from a printer; and release the print queue associated with the account such that the printer prints the document, the release being in response to the second request being authenticated. 17. The computing device of claim 16, wherein the computing device authenticates the first request using a first authentication routine, and the printer authenticates the second request using a second authentication routine. 18. The computing device of claim 16, wherein the second request is authenticated using a contactless card and the computing device. 19. The computing device of claim 16, wherein the second request is authenticated using a contactless card and the printer. 20. The computing device of claim 16, wherein the print queue is released in response to verification that the printer is authorized to print the document. Claims 2 / 2 Page 3 CN 121511444 A Self-service Authentication Printing
[0001] Cross-Reference to Related Applications
[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 18 / 195,550, filed May 10, 2023, the disclosure of which is incorporated herein by reference in its entirety. Background Art
[0003] This application relates to computing technology and the use of authentication to facilitate self-service printing to improve data security.
[0004] Physical copies of digital documents and other materials are often required and / or preferred for consuming information in such documents and materials. However, not everyone has access to private printers. While public printers (such as those in libraries and retail stores) may be available, sensitive information (such as confidential or privileged information) may be prohibited from use by such printers. In addition, documents may require special printing, such as in the case of certain financial documents (e.g., checks), certain legal documents (e.g., stamp paper), etc. Printing such documents may require the use of a dedicated printer. Therefore, it is necessary to print documents and other materials in an authenticated and secure manner to prevent printed copies from being accessed by third parties.
[0005] According to one or more aspects, a computer-implemented method for enabling self-service printing using authentication includes: receiving a print request from a server for printing a document associated with an account, the print request being received from a computing device. The method further includes the server adding a print job for the document to a print queue associated with the account.The method further includes receiving a second request from a server to initiate printing a document associated with an account, the second request being received from a printer. The method also includes releasing a print queue associated with the account from the server to cause the printer to print the document, the release being in response to authentication of the second request.
[0006] According to one or more aspects, a computer-implemented method for enabling self-service printing using authentication includes: selecting a document associated with an account for printing by a computing device. The method further includes generating a list of printers for printing the document by the computing device, the list being generated based on the type of the document. The method further includes selecting a printer from the list by the computing device to print the document. The method further includes providing an authentication code from the computing device to cause the printer to print the document in response to the printer being accessed to print the document.
[0007] According to one or more aspects, a computing device includes: a processor; and a memory storing instructions that, when executed by the processor, configure the computing device to receive a first request to print a document associated with an account, the first request being received from a computing device. The computing device is also configured to add a print job for the document in a print queue associated with the account. The computing device is also configured to receive a second request to initiate printing of a document associated with a document, the second request being received from a printer. The computing device is also configured to release a print queue associated with an account, causing the printer to print the document, the release being in response to the second request being authenticated.
[0008] For ease of identification of any particular element or action discussed, the most significant digit or plurality of digits in the reference numerals refer to the figure number in which the element is first introduced.
[0009] FIG1 illustrates one aspect of the subject matter according to an embodiment. Specification 1 / 29 pages 4 CN 121511444 A
[0010] FIG2A illustrates one aspect of the subject matter according to an embodiment.
[0011] FIG2B illustrates one aspect of the subject matter according to an embodiment.
[0012] FIG3 illustrates one aspect of the subject matter according to an embodiment.
[0013] FIG4 illustrates routine 400 according to an embodiment.
[0014] FIG5 illustrates routine 500 according to an embodiment.
[0015] FIG6 illustrates routine 600 according to an embodiment.
[0016] FIG7A illustrates a contactless card according to one embodiment.
[0017] FIG7B illustrates a contactless card 102 according to one embodiment.
[0018] FIG8 illustrates a data structure 800 according to one embodiment.
[0019] FIG9 illustrates a computer architecture 900 according to one embodiment.
[0020] FIG10 illustrates a sequence stream 1000 according to one embodiment.
[0021] FIG11 is a diagram of a key system according to an exemplary embodiment.
[0022] FIG12 is a flowchart of a method for generating a cipher according to an exemplary embodiment.
[0023] Figure 13 illustrates one aspect of the subject matter according to one embodiment. Detailed Description
[0024] The embodiments disclosed herein provide techniques for securely printing materials using contactless cards to authenticate a user and verify his / her presence when he / she prints and / or releases the printed material. To create a print request via a computing device, the computing device can authenticate the user using a contactless card, for example, using a password generated by the contactless card. An application executing on the computing device can receive the password via communication with the contactless card and transmit the password to a server for verification. The server can grant the user access to request the printing of one or more printable materials (e.g., documents, images, etc.) based on the verification of the password. The printable materials can be previously generated or dynamically generated according to the user's request.
[0025] The server can add the requested material to a print queue. The print queue can be maintained by the server. In some examples, the user can specify a printer. The printer can be a printer device recognized by the server as a secure and trusted printer. In some examples, the specified printer can maintain the print queue. In some examples, the print queue can be dedicated to the user, the contactless card, or an account associated with the user. Once a user claims to be at a secure and trusted printer or at a designated printer, he / she can cause material to be printed and / or released by authenticating and verifying his / her presence using a contactless card. In some cases, the same contactless card used when requesting printing may be required to release printable material. Alternatively, different contactless cards associated with the user or account may be used for requesting and releasing.
[0026] The server may securely deliver printable material to the printer. In some embodiments, when a user attempts to release printable material to generate a printed copy, password verification using a contactless card may be used to authenticate access to printable material in the print queue. For example, a user may provide a contactless card to the printer, and the printer or an associated card reader may read the card and receive a password. The printer may provide the password to the server to perform authentication of the user. If password verification fails, user access to printable material may be restricted, thereby improving account security.
[0027] As an additional or alternative security measure, the user may have to perform multi-factor authentication to release printable material from the print queue at the printer. Multi-factor authentication may include a combination of contactless cards, computing devices, and one or more authentication certificates associated with the account.
[0028] Embodiments disclosed herein provide security techniques for printing one or more documents using passwords generated by contactless cards and other security measures. By utilizing passwords, embodiments of this disclosure can securely verify the identity of the user and the existence of the document (page 2 / 29 of the manual, CN 121511444 A) with minimal risk of fraudulent activity associated with printed copies.Furthermore, the embodiments disclosed herein facilitate users to print materials securely when they may not have access to the printer. Furthermore, the embodiments disclosed herein facilitate servers and / or printers to restrict the printing of materials to only verified users and / or only when the verified user is physically present at the printer.
[0029] Referring generally to the notation and nomenclature used herein, the detailed description herein can be presented in terms of programming programs that can be executed on a computer or computer network. These program descriptions and representations are used by those skilled in the art to effectively convey the substance of their work to those skilled in the art.
[0030] The programs herein, and generally, are contemplated as a self-consistent sequence of operations that result in a desired outcome. These operations are those that require physical manipulation of physical quantities. Typically, although not essential, these quantities take the form of electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated. Sometimes, primarily for reasons of common use, it is convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. However, it should be noted that all such terms are to be associated with appropriate physical quantities and are merely convenient labels applied to these quantities.
[0031] Furthermore, the operations performed are often referred to by terms such as addition or comparison, which are generally associated with mental operations performed by a human operator. In any of the operations described herein that form part of one or more embodiments, such capabilities of a human operator are not necessary or desired in most cases. Instead, the operation is machine-operated. Useful machines for performing the operations of the various embodiments include digital computers or similar devices.
[0032] Some embodiments may be described using the expressions “coupled” and “connected” together with their derivatives. These terms are not necessarily intended to be synonyms with each other. For example, some embodiments may be described using the terms “connected” and / or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term “coupled” may also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.
[0033] Various embodiments also relate to means or systems for performing these operations. Such means may be specifically constructed for the desired purpose, or it may comprise a computer that is selectively activated or reconfigured by a computer program stored in a computer. The programs presented herein are not inherently related to any particular computer or other device. Various machines can be used with programs written in accordance with the teachings herein, or it can be demonstrated that it is convenient to construct more specialized devices to perform the required method steps. The necessary structures for various of these machines will become apparent from the given description.
[0034] Reference is now made to the accompanying drawings, wherein the same reference numerals are used throughout to refer to the same elements. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding thereof.However, novel embodiments may be practiced without these specific details. In other instances, structures and devices are shown in block diagram form for ease of description. The intention is to cover all modifications, equivalents, and substitutions consistent with the claimed subject matter.
[0035] In the drawings and accompanying description, the designations “a”, “b”, and “c” (and similar designations) are intended to represent variables of any positive integer. Thus, for example, if the implementation sets the value of a=5, then the complete set of components 123 shown as components 123-1 to 123-a (or 123a) may include components 123-1, 123-2, 123-3, 123-4, and 123-5. Embodiments are not limited in this context.
[0036] The embodiments disclosed herein provide techniques for addressing one or more technical challenges. These technical challenges relate to the secure printing of material from a user account, such as documents, images, etc. The technical challenges addressed herein include the ability to securely print material from a user account when the user does not have access to a private printer. The embodiments described herein address these technical challenges by using contactless cards to authenticate and verify users during printing. In some embodiments, additional security can be provided by using a combination of contactless cards and computing devices (e.g., mobile). Therefore, technical solutions and improvements are provided to increase the security of data access, as described on page 3 / 29 of the specification (CN 121511444 A).
[0037] The embodiments described herein are solutions to the internet-centric challenge of securely accessing and printing data stored on servers (e.g., cloud platforms) using public printers. Secure access and printing are facilitated by using one or more of contactless cards and computing devices.
[0038] Additional improvements and applications provided by the embodiments described herein include location-based enhancements to identify printers within a predetermined range of a user, enabling the identified printer to print materials requested by the user. Furthermore, improvements provided by the embodiments described herein also include dynamically generating and printing materials based on the user's request when an authorized user is verified to be present at the printer.
[0039] Based on the description herein, numerous other improvements to technologies (such as printers and servers) for facilitating secure printing, as well as advantages in this technical field, will be apparent to those skilled in the art.
[0040] Referring generally to the notation and nomenclature used herein, one or more portions of the detailed description below can be presented in terms of a programming program that executes on a computer or computer network. These program descriptions and representations are used by those skilled in the art to most effectively convey the essence of their work to those skilled in the art. The programs herein, and generally, are conceived as a self-consistent sequence of operations that result in a desired outcome. These operations are those that require physical manipulation of physical quantities.Typically, though not essential, these quantities take the form of electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated. Sometimes, primarily for reasons of common use, it is convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. However, it should be noted that all such terms are to be associated with appropriate physical quantities and are merely convenient labels applied to these quantities.
[0041] Furthermore, these operations are often referred to by terms such as addition or comparison, which are generally associated with mental operations performed by a human operator. However, in any of the operations described herein that form part of one or more embodiments, such capabilities of a human operator are not necessary or desirable in most cases. Instead, these operations are machine operations. Useful machines for performing the operations of the various embodiments include digital computers selectively activated or configured by computer programs stored therein, written in accordance with the teachings of this document, and / or including devices or digital computers specifically constructed for the desired purpose. The various embodiments also relate to devices or systems for performing these operations. These devices can be specifically constructed for the desired purpose. The desired structures for the various such machines will be apparent from the given description.
[0042] Referring now to the accompanying drawings, the same reference numerals are used throughout to refer to the same elements. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding thereof. However, it may be apparent, however, that novel embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form for ease of description. It is intended to cover all modifications, equivalents, and substitutions within the scope of the claims.
[0043] FIG1 depicts an exemplary system 100, also referred to as a computing architecture, consistent with the disclosed embodiments. Although the system 100 shown in the figure has a limited number of elements in a particular topology, it will be understood that the system 100 may include more or fewer elements in alternative topologies as desired for a given implementation.
[0044] The system 100 includes one or more contactless cards 102, one or more computing devices 104, one or more servers 106, and one or more printers 108.
[0045] The contactless card 102 represents any type of card, such as a credit card, debit card, ATM card, gift card, payment card, smart card, ID card, and the like. The contactless card 102 is associated with user 110's account 142. Account 142 can be a financial account, social media account, employee account, customer loyalty account (e.g., airline, hotel, restaurant, store, etc.), or any other account associated with user 110.User 110 may use account 142 to perform one or more operations, and may be associated with account 142. For example, in the case of a financial account, user 110 may perform transactions such as remittances, check deposits, bill payments, balance inquiries, accessing customer service, accessing one or more documents, etc. In the case of an employee account, user 110 may perform operations such as sending / receiving messages, editing documents / records, operating machinery, etc., or any other operations that user 110 may expect to perform as part of his / her employment. Messages may be emails, instant messages, or any other type of message. In the case of a loyalty account, user 110 may perform operations such as purchasing, returns, statement inquiries, receipt inquiries, accessing coupons, etc. It should be understood that account 142 may be any type of account and is not limited to the account types listed herein.
[0046] The contactless card 102 facilitates the authentication of user 110's use of account 142. Here, "using" account 142 may include any operation performed in association with account 142. For example, using an account may include performing one or more operations associated with account 142, such as logging into account 142, accessing resources associated with account 142, etc. Furthermore, using account 142 may include accessing and / or changing one or more settings of account 142. These settings may include, for example, a username, password, demographic information (age, address, gender, etc.), biometric identifiers, financial information (e.g., debt limits, transaction limits, etc.), notification settings (e.g., conditions for when notifications are generated and sent to user 110), etc. These settings may also include access permissions, which grant / restrict user 110 access to one or more physical / digital resources associated with account 142. Physical resources may include doors, safes, computers, cabinets, equipment (e.g., printers, projectors, etc.), devices (e.g., laboratory equipment), or any other such resources. Digital resources may include files, computers, other user accounts, databases, etc. Based on the access permissions granted to user 110 by account 142, he / she may or may not be authorized to access one or more of the resources (physical / digital). As described herein, contactless card 102 addresses the challenge of authenticating user 110.
[0047] Account 142 is maintained by an account provider (not shown). The account provider for account 142 may be a financial institution (e.g., a bank, credit union, etc.), an employer, a social media platform, an airline, a restaurant, a hotel, a retailer, or any other entity. The account provider uses server 106 to provide account 142.
[0048] As shown, server 106 includes an authentication application 138 and an account database 128.Account database 128 typically includes information associated with one or more accounts (e.g., account 142), one or more users (e.g., user 110), and one or more contactless cards 102 for account 142. Account 142 includes permissions, settings, and other information that facilitate user 110's use of contactless cards 102 to access account 142. Additionally, user 110 can use account 142 via computing device 104. In some embodiments, user 110 can use account 142 via a combination of contactless card 102 and computing device 104. For example, the combination of contactless card 102 and computing device 104 is used to perform multi-factor authentication (MFA) for user 110. The embodiments described herein correspondingly address the technical challenges of authenticating access to account 142, which is an electronic account. Therefore, the embodiments herein practically address the challenges of an internet-centric, digital account-centric system. This challenge is addressed using specific computer components that facilitate the authentication of user 110 by performing specific sequences of operations.
[0049] Computing device 104 represents any number and type of computing devices, such as smartphones, tablet computers, wearable devices, laptops, portable gaming devices, virtualized computing systems, merchant terminals, point-of-sale systems, servers, desktop computers, and the like. Mobile devices may be used as examples of computing device 104, but should not be considered as limiting this disclosure. Server 106 represents any type of computing device, such as enterprise servers, workstations, computing clusters, cloud computing platforms, virtualized computing systems, and the like. Although not depicted for clarity, computing device 104, contactless card 102, and server 106 each include one or more memory devices (e.g., random access memory, storage drives, etc.) and one or more processor circuits (central processing unit, graphics processing unit, floating-point unit, etc.) to execute programs, code, scripts, and other types of computer-executable instructions.
[0050] The contactless card 102 includes one or more communication interfaces 126, such as a radio frequency identification (RFID) chip, which is configured to communicate with the communication interface 126 of the computing device 104 (also referred to herein as a “card reader”, “wireless card reader” and / or “wireless communication interface”).Communication interface 126 facilitates wireless communication using Europay, Mastercard, and VISA standards (EMV) or other short-range protocols via near field communication (NFC). Although NFC is used herein as an example communication protocol, this disclosure is equally applicable to other types of wireless communication, such as Bluetooth™, Bluetooth Low Energy (BLE), and / or Wi-Fi™.
[0051] As shown, the memory 112 of contactless card 102 includes a unique ID 114, an applet 116, one or more master keys 118, a counter 120, and one or more diversity keys 122. The unique ID 114 can be any identifier that uniquely identifies the contactless card 102 relative to other contactless cards 102. In some examples, the unique ID 114 can be an identifier that uniquely identifies the user 110 associated with the contactless card 102. The applet 116 is executable code (i.e., computer-executable instructions) configured to perform some or all of the operations described herein. Counter 120 is a value synchronized between contactless card 102 and server 106. Counter 120 may include a number that changes each time data is exchanged between contactless card 102 and server 106 (and / or contactless card 102 and computing device 104). Counter 120, master key 118, diversity key 122, and / or unique ID 114 are used to provide security in system 100, as described in more detail below. Memory 112 may include additional components such as an operating system, images, etc., which are not depicted herein for brevity.
[0052] As shown, memory 132 of computing device 104 includes an instance of operating system 134. Example operating systems include Android® OS, iOS®, macOS®, Linux®, and Windows® operating systems. As shown, operating system 134 includes account application 136. Account application 136 allows user 110 to perform various account-related operations, such as viewing account balance, purchasing items, processing payments, accessing one or more resources, printing documents, etc. Account application 136 is a computer program that includes one or more computer-executable instructions. In some embodiments, account application 136 may include computer-executable instructions specific to operating system 134 and / or computing device 104. Alternatively or additionally, account application 136 may include computer-executable instructions that can be executed across different operating systems and computing devices.In some embodiments, account application 136 may be a web browser that allows user 110 to access account 142 via one or more web pages of account 142. The web pages of account 142 may be hosted by server 106 (or another hosting entity).
[0053] In some embodiments, after authentication using an authentication certificate, user 110 accesses account 142 on server 106 via account application 136 on computing device 104. For example, the authentication certificate may include a username (or login) and password, biometric certificates (e.g., fingerprint, facial ID, palm print, iris scan, etc.), etc. In some embodiments, such certificate-based access only allows user 110 to access a subset of the features / resources of account 142. For example, in the case of a financial account, account application 136 may restrict user 110 to only view certain balances and / or information, and not allow user to perform actions such as fund transfers. In the case of a loyalty account, user 110 may be prohibited from making purchases at this first authentication level that provides access to a subset of features / resources. In the case of an employee account, user 110 may be prohibited from viewing emails or accessing certain locations, etc. To access such prohibited (or secure, second-level) functions of account 142, user 110 must authenticate using contactless card 102.
[0054] In some embodiments, user 110 is authenticated using gesture-based authentication with contactless card 102. For example, user 110 may tap contactless card 102 against computing device 104 (or otherwise bring contactless card 102 within communication range of communication interface 126 of computing device 104). Account application 136 may then instruct applet 116 to generate password 124. Password 124 may be generated based on any suitable cryptographic technique. In some embodiments, password 124 may be based on the unique ID 114 of contactless card 102. Contactless card 102 transmits password 124 to account application 136 via communication interface 126. In some cases, wireless communication using NFC is performed by communication interface 126. In some embodiments, applet 116 may include a password 124 and an unencrypted identifier (e.g., counter 120, unique ID 114, and / or any other unique identifier) as part of a transmission data packet including password 124. In at least one embodiment, the data packet is an NDEF file.
[0055] In some embodiments, system 100 is configured to implement key diversification to protect communication data, which may be referred to herein as key diversification techniques. Generally, server 106 and contactless card 102 may be equipped with the same master key 118 (also referred to as the master symmetric key).More specifically, each contactless card 102 is programmed with a different master key 118, which has a corresponding pair in server 106. For example, when manufacturing the contactless card 102, the unique master key 118 can be programmed into the memory 112 of the contactless card 102. Similarly, the unique master key 118 can be stored in the account database 128 of server 106 in the records of users 110 associated with the contactless card 102 (and / or stored in a different secure location, such as a hardware security module (HSM) 130). The master key 118 can be kept secret from parties other than the contactless card 102 and server 106, thereby improving the security of system 100. In some embodiments, the applet 116 of the contactless card 102 can use the master key 118 and data (e.g., a unique ID 114) as input to a cryptographic algorithm to encrypt and / or decrypt data. For example, encrypting the unique ID 114 using the master key 118 can generate a password 124. Similarly, server 106 can use the corresponding master key 118 to encrypt and / or decrypt data associated with contactless card 102. Because server 106 and contactless card 102 have the same master key 118, they generate matching passwords 124 by using the same cryptographic algorithm.
[0056] Therefore, user 110 can be authenticated by matching the passwords 124 generated by contactless card 102 and server 106. In some embodiments, computing device 104 transmits the password 124 received from contactless card 102 to server 106. Server 106 verifies user 110's authentication by comparing the received password 124 with the password 124 generated by server 106. Server 106 sends a notification to computing device 104 indicating successful verification. If password 124 matches, server 106 indicates successful verification. Otherwise, server 106 indicates unsuccessful verification. Server 106 may communicate the notification to computing device 104, for example, via network 140.
[0057] In some embodiments, verification may use additional information besides password 124. Alternatively or additionally, password 124 may be generated using data other than unique ID 114. In some embodiments, the master key 118 of contactless card 102 and server 106 may be used in conjunction with counter 120 to enhance security using key diversification. Counter 120 includes values synchronized between contactless card 102 and server 106. For example, counter 120 may include a number that changes each time data is exchanged between contactless card 102 and server 106 (and / or contactless card 102 and computing device 104).Here, the data exchanged between the contactless card 102 and the server 106 and / or computing device 104 may include instructions and responses passed between the contactless card 102 and another device. For example, the app 116 may provide a master key 118, a unique ID 114, and a diversification factor as input to a cryptographic algorithm to generate a diversification key 122. In some embodiments, the diversification factor is a counter 120. The diversification key 122 may then be used to encrypt some data, such as the diversification factor (e.g., counter 120) or other sensitive data. The app 116 and the server 106 may be configured to encrypt the same data to facilitate decryption and / or verification processing of the cipher 124.
[0058] In some embodiments, when ready to send data (e.g., to the server 106 and / or computing device 104), the app 116 of the contactless card 102 may increment the counter 120. The applet 116 of the contactless card 102 can then provide a master key 118, a unique ID 114, and a counter 120 as inputs to a cryptographic algorithm that produces a diversification key 122 as output. The cryptographic algorithm may include encryption algorithms, hash-based message authentication code (HMAC) algorithms, cipher-based message authentication code (CMAC) algorithms, and so on. Non-limiting examples of cryptographic algorithms may include symmetric encryption algorithms such as 3DES or AES 107; symmetric HMAC algorithms such as HMAC-SHA-256; and symmetric CMAC algorithms such as AES-CMAC. Examples of key diversification techniques are described in more detail in U.S. Patent Application 16 / 205,119, filed November 29, 1518. The aforementioned patent application is incorporated herein by reference in its entirety.
[0059] The app 116 can then use the diversification key 122 as input to a cryptographic algorithm to encrypt some data (e.g., unique ID 114, counter 120, commands, and / or any other data). For example, encrypting unique ID 114 with the diversification key 122 can produce an encrypted unique ID 114 (e.g., password 124).
[0060] In some embodiments, two diversification keys 122 can be generated, for example, based on one or more portions of the input to the cryptographic function. In some embodiments, two diversification keys 122 are generated based on two different master keys 118, unique ID 114, and counter 120.In such embodiments, one of the diversification keys 122 is used to generate a message authentication code (MAC), and another of the diversification keys 122 can be used to encrypt the MAC. The MAC can be generated based on any suitable data input to the MAC algorithm, such as sensitive data, a unique ID 114, a counter 120, etc. Applet 116 and server 106 can be configured to generate the MAC based on the same data. In some embodiments, the password 124 is included in a data packet such as an NDEF file. Account application 1310 can then read the data packet including the password 124 via communication interface 126 of computing device 104.
[0061] Account application 136 transmits the password 124 to server 106. Server 106 can provide the password 124 to authentication application 138 and / or HSM 130 for verification, at least in part based on an instance of master key 118 stored by server 106. In some embodiments, authentication application 138 and / or HSM 130 may use an unencrypted unique ID 114 provided to server 106 to identify master key 118 and counter 120. In an example where additional data is used to generate password 124, server 106 may use the unencrypted unique ID 114 to identify additional data in account database 128 and / or HSM 130. In some examples, authentication application 138 may provide master key 118, unique ID 114, and counter 120 as input to a cryptographic function of HSM 130, which produces one or more diversification keys 122 as output. In other embodiments, server 106 encrypts master key 118, unique ID 114, and any additional data to generate diversification key 122. The resulting diversification key 122 may correspond to diversification key 122 of contactless card 102. The generated diversification key 122 is used to decrypt password 124 and / or verify MAC once decrypted. For example, server 106 can generate a MAC based on the same data as applet 116 (e.g., sensitive data, unique ID 114, counter 120, and / or any additional data). If the MAC generated by server 106 matches the decrypted MAC in password 124, server 106 can verify or otherwise successfully authenticate password 124.
[0062] Regardless of the decryption technique used, authentication application 138 and / or HSM 130 can successfully decrypt password 124 and verify the MAC, thereby verifying or authenticating password 124. If decryption and / or MAC verification is successful, authentication application 138 and / or HSM 130 can generate and transmit a notification indicating that user 110 has been authenticated.If authentication application 138 cannot decrypt password 124 (and / or cannot verify MAC), then authentication application 138 does not verify password 124. In such examples, authentication application 138 determines not to generate and transmit a notification. Authentication application 138 may transmit an indication of failed decryption and / or verification to computing device 104.
[0063] In one or more embodiments, user 110 may have one or more printable documents 144 associated with account 142. User 110 may wish to print, i.e., make a physical copy of printable document 144. Alternatively or additionally, user 110 may be required to print some material at the request of account provider. In some embodiments, one or more printable documents 144 may include sensitive and / or security information that user 110 may not want to or may not be allowed to print, unless the printer being used is a trusted security device. For example, printable document 144 may include checks, balance statements, boarding instructions (page 8 / 29, 11 CN 121511444 A), coupons, pay stubs, confidential / privileged documents, or any other document containing information that user 110 or the account provider considers sensitive, privileged, secret, personal, etc. Therefore, printing one or more printable documents 144 is restricted to a trusted printer, such as printer 108. In other embodiments, user 110 may not have access to a private printer (e.g., a printer at home) and therefore, printable document 144 (with / without sensitive, privileged, secret, personal, etc.) may be being printed at printer 108, which is a public printer.
[0064] Therefore, there are technical challenges to creating and executing secure printing (print jobs) of printable document 144 from account 142, where the printing material is only available when user 110 is authenticated. Furthermore, a technical challenge is verifying that user 110 is physically present at printer 108 when printable document 144 is printed. The embodiments described herein address these technical challenges. Authentication and verification of user 110 using contactless card 102 is used to ensure that authorized user 110 is physically present at printer 108 when the requested printable document 144 is being printed. In some embodiments, before releasing printable document 144, server 106 uses a combination of contactless card 102, computing device 104, and printer 108 to verify that user 110 is the person he / she claims to be. In some embodiments, after performing authentication and verification of user 110, printable document 144 is released for printing by printer 108.
[0065] In some embodiments, for processing the printing of printable document 144, system 100 includes printing engine 146. Printing engine 146 is shown as part of server 106; however, in other embodiments, printing engine 146 may be part of some other component of system 100 or may be a separate component itself.Printing engine 146 can only access user 110 via account application 136 if user 110 has already authenticated using contactless card 102. Alternatively, user 110 can request to print one or more of printable documents 144 only after successful authentication using contactless card 102. In other words, user 110 must create a secure authentication session with server 106 to request to print printable documents 144.
[0066] Via account application 136, user 110 can select one or more documents to print from printable documents 144. In some embodiments, printable documents 144 have already been generated, for example, monthly statements, transaction history, etc. Alternatively, user 110 selects the type or description of the document to print. Subsequently, the corresponding printable document 144 is dynamically generated based on the selection and information provided by user 110. In some embodiments, printable documents 144 can be generated immediately after user 110 makes a selection and provides the corresponding information. Alternatively, in some embodiments, printable document 144 is dynamically generated after user 110 verifies his / her presence at printer 108.
[0067] Server 106 may add one or more printable documents 144 selected / generated for printing to print queue 148. In some embodiments, print queue 148 is dedicated to user 110 who has contactless card 102. Alternatively or additionally, print queue 148 is dedicated to account 142, which may have more than one contactless card 102 associated with it. Thus, a first contactless card 102 associated with account 142 may be used to make a request to print one or more printable documents 144. Subsequently, a second contactless card 102 also associated with the same account 142 is used to release printable document 144 at printer 108. Adding printable document 144 to print queue 148 may include associating printable document 144 with additional information such as information verifying that user 110 will be authenticated to receive a printed copy of printable document 144.
[0068] In some embodiments, printer 108 is a secure printer 108 designated to print the requested printable document 144. Secure printer 108 may be a printer device identified as a trusted printer device by print engine 146. Printer 108 may be identified as a trusted device because it is connected to print engine 146 via a secure communication link. Alternatively or additionally, printer 108 may include one or more modules and / or trust certificates (not shown) that identify printer 108 as a trusted device.
[0069] Furthermore, in some embodiments, the printer instruction manual (page 9 / 29, 12 CN 121511444 A 108) can be identified and designated to print the requested printable document 144 based on one or more attributes of user 110. For example, printer 108 can be selected based on the location of user 110, which is automatically identified based on computing device 104. The location is automatically identified based on a position sensor (not shown) equipped on computing device 104. Printer 108 can be selected by server 106 or by printing engine 146. Alternatively or additionally, printer 108 can be selected based on the location entered by user 110 via user interface of account application 136. Alternatively or additionally, the attributes of user 110 used to select printer 108 can include a history of printers previously used and preferred by user 110. This preference can be based on input provided by user 110. Furthermore, printer 108 can be selected based on the status of user 110 as indicated by contactless card 102. For example, the status can indicate the level of account 142, such as silver member, gold member, diamond member, etc. Any other tiered rating can be used to provide the status level. The status level may depend on multiple factors, such as user 110's card fees, card usage, organizational location, card age, card fees, etc.
[0070] In one or more embodiments, printer 108 is a self-service printer that does not require any human operator. Therefore, the technical challenges addressed by the embodiments described herein are kiosks-centric and, therefore, necessarily require technology or technical solutions. In other words, verifying and / or authenticating user 110 at printer 108 must be done electronically or digitally using one or more computing devices. Therefore, the technical solutions provided by the embodiments described herein are rooted in the technical field of self-service printers and provide improvements to self-service printers by facilitating the authentication and / or verification of such devices to user 110 who has collected a copy of printable document 144. The embodiments described herein further provide practical applications of preventing fraudulent activities by enabling the self-service printer to authenticate and verify the identity of the receiving user 110 before printing a copy of printable document 144 for user 110.
[0071] In some embodiments, printer 108 includes account application 136. Account application 136 may be substantially similar to account application 136 on computing device 104. Alternatively, in some embodiments, account application 136 may be a limited version of account application 136 on computing device 104. For example, account application 136 on printer 108 may have only features associated with releasing and printing printable document 144, without features associated with selecting printable document 144.Therefore, the account application 136 on printer 108 can allow user 110 to access and print printable documents 144 that she / he has selected for printing.
[0072] In some embodiments, printer 108 includes a communication interface 126 to facilitate printer 108 authenticating the identity of user 110 via contactless card 102 as described herein. Communication interface 126 can facilitate account application 136 communicating with contactless card 102, for example, to obtain password 124 from contactless card 102. Communication interface 126 can further facilitate other types of communication of printer 108, such as with server 106, computing device 104, etc. Such communication may include wired and / or wireless communication. Communication interface 126 of printer 108 may also include a machine-readable code scanner, for example, to read machine-readable codes, such as barcodes, quick-response (QR) codes, etc.
[0073] In some embodiments, one or more components of communication interface 126 may be externally equipped on printer 108. For example, communication interface 126 may be part of a separate device coupled to printer 108 to enable printer 108 to communicate using one or more protocols supported by communication interface 126.
[0074] FIG2A is a schematic diagram 300a illustrating an embodiment in which a contactless card 102 is tapped onto computing device 104 (e.g., to obtain password 124). As stated, when contactless card 102 is tapped onto computing device 104, applet 116 may generate a password (e.g., password 124). Password 124 and any other data (e.g., unencrypted unique ID 114) may be included in a data packet, such as an NDEF file, which is read by computing device 104. Computing device 104 may then transmit password 124 (and other data) to server 106 for verification as described herein (e.g., decryption and / or MAC verification).
[0075] FIG2B is a schematic diagram 300b illustrating an embodiment in which server 106 verifies the password generated by contactless card 102 (see, for example, FIG2A). Based on this verification, server 106 can create a one-time password (OTP) 202. The OTP 202 may be, for example, a pseudo-random code. In some embodiments, the OTP 202 is generated based on one or more attributes of account 142 associated with contactless card 102. Server 106 can then transmit the OTP 202 to account application 136. As shown, account application 136 can then display the OTP 202 on the display of computing device 104. The OTP 202 may include a string of characters.In some embodiments, OTP 202 includes or is represented as matrixed code that is machine-readable. This allows OTP 202 to be scanned by a code reader. In some embodiments, OTP 202 is used for multi-factor authentication to verify user 110.
[0076] Figure 3 depicts an example scenario of the use of system 100. Consider a scenario where user 110 accesses her bank account 142 via her mobile computing device 104 to select and print a printable document 144. The selected printable document 144 contains sensitive information and must be printed at a secure printer 108. User 110 prefers the printer 108 used for printing to be closer to her work location than to her home location. It should be understood that this scenario is merely an example scenario used as an illustration of the embodiments described herein. This scenario is non-limiting and the technical solutions provided by the embodiments described herein can be used in many other scenarios in the context of a bank account or any other type of account.
[0077] Figure 4 illustrates an embodiment of a method, logic flow, or routine 400. Routine 400 may represent some or all of the operations performed by one or more embodiments described herein. For example, routine 400 may include some or all of the operations to complete a print-request to securely print one or more printable documents 144 at self-service printer 108 as described herein. Embodiments are not limited in this context.
[0078] Routine 400 is described in the context of the example scenario illustrated in FIG3. It should be understood that this scenario is merely one example scenario used as an illustration of the embodiments described herein. This scenario is non-limiting and the technical solutions provided by the embodiments described herein can be used in many other scenarios in the context of bank accounts, or any other type of account. In some embodiments, the operations described herein may be described as being performed by server 106. However, in other embodiments, the operations may be performed by server 106, a system including one or more servers, or any other type of device.
[0079] In block 402, server 106 receives a first request to establish a first authentication session associated with account 142. The first request is received from computing device 104, particularly from account application 136. When user 110 logs in to account application 136, account application 136 generates a first request. In some embodiments, user 110 may log in to account application 136 by providing one or more authentication certificates. Alternatively or additionally, user 110 may be required to verify her identity using contactless card 102, as described herein. For example, user 110 may be instructed to bring contactless card 102 to a predetermined vicinity or range of computing device 104.Once the contactless card 102 and the computing device 104 are within range of NFC-based communication, as described in detail herein, the account application 136 will perform an authentication procedure based on a password 124 from the contactless card 102, which is transmitted to the server 106 for verification. For brevity, the description of the authentication procedure will not be repeated here.
[0080] In block 404, the server 106 establishes a first authentication session in response to authenticating the account 142 being accessed via the computing device 104. In some embodiments, the user 110 can only utilize the printing service for account 142 if such an authentication session is established. For example, if the user 110 only uses an authentication certificate to log in (Level 1 security) and does not provide the contactless card 102 for further verification (Level 2 security), the user 110 can utilize a limited subset of features of account 142. Such a subset of features may not include the printing service provided by account 142. In other embodiments, the user 110 may even utilize the printing service under Level 1 security.
[0081] In block 406, server 106 receives a print request during the first authentication session to print a printable document 144 associated with account 142. For example, user 110 may choose to print a bank statement for a specific month. Alternatively, or in addition to the specification on page 11 / 29 of CN 121511444 A, user 110 may choose to print receipts for one or more transactions. Alternatively, or additionally, user 110 may choose to print checks, such as cashier's checks. It should be understood that user 110 may not be limited to the example printable documents 144 listed herein.
[0082] In block 408, server 106 adds a print queue 148 to the print queue 148 for the selected printable document 144. Print queue 148 may include all selected printable documents 144. Alternatively, in some embodiments, each printable document 144 may be added to print queue 148 as a separate print queue 148. A print queue 148 for printable document 144 may include an identifier and an image of one or more printable documents 144 in the print queue 148. The image of the printable document 144 is an image printed by printer 108 to create a physical copy of the printable document 144.
[0083] In some embodiments, adding a print queue 148 includes creating a print queue 148 for account 142 in print engine 146. In some embodiments, print queue 148 may be associated with account 142. Server 106 uses an application programming interface (API) for print engine 146 to create print queue 148 for account 142.Creating print queue 148 may include executing one or more commands that specify the identifier of account 142. Once print queue 148 is created, it is added to the print queue 148. In some embodiments, print queue 148 has a predetermined expiration time, such as 24 hours, 48 hours, or any other such duration. After the duration expires, print queue 148 is removed from print queue 148 by print engine 146. In some embodiments, print engine 146 may generate a notification to user 110 indicating that print queue 148 is about to expire. Such notification may be provided via account application 136 on computing device 104. The notification may be provided at a predetermined duration before the preset expiration, such as 4 hours ago, 8 hours ago, 1 hour ago, etc. User 110 may respond to such expiration notification by renewing print queue 148. Renewal may be for the same or different predetermined expirations. In some embodiments, such renewal process may be limited to a predetermined number of times, such as 3 times, 5 times, etc.
[0084] In some embodiments, print queue 148 may have a predetermined expiration time. If print queue 148 is empty, i.e., there is no print queue 148, then print engine 146 may remove (delete) print queue 148. Otherwise, print engine 146 will delay the removal of non-empty print queue 148 for a predetermined duration.
[0085] Print queue 148 may be accessed when account 142 is accessed. User 110 may access print queue 148 via account application 136. In some embodiments, user 110 may see, edit, and delete one or more print queues 148 until print queue 148 is released for printing at printer 108.
[0086] In some embodiments, when adding print queue 148 to print queue 148, user 110 may select printer 108. The selection of printer 108 depends on one or more attributes as described herein. In some embodiments, the selection of printer 108 may depend on the type of one or more printable documents 144 selected. For example, if the selected printable document 144 is of a particular type, printer 108 may have to have permission and / or ability to print that type of printable document 144. For example, the type of printable document 144 can be, but is not limited to, reports, account statements, transaction history, checks, fund transfer instructions, forms, letters, offers, or combinations thereof. Printing checks may require a higher level of trust than printing account statements. Therefore, only a limited number of printers 108 may have the capability and resources (e.g., special paper, special ink, special printheads, etc.) to print this type of printable document 144 (e.g., checks). Therefore, printers 108 can be selected only from this limited set of printers 108.In another case, for printable document 144, such as account statements, this higher level of trust may not be required, and any printer 108 that provides verified printing can be used.
[0087] Printer 108 may be selected from one or more self-service printers installed at one or more locations of the account provider. For example, such self-service printers may be placed at bank locations, pharmacies, grocery stores, gas stations, print service shops, airports, train stations, or any other location chosen by the account provider. Specification 12 / 29 pages 15 CN 121511444 A
[0088] In some embodiments, account application 136 displays a list 304 of printers that can be used to print the selected printable document 144 to user 110 based on the type of the selected one or more printable documents 144. The displayed list of printers 304 may be filtered and / or sorted according to one or more attributes of user 110. For example, the displayed list of printers 304 may be sorted according to the user's recent access to and / or transactions with one or more printers. Alternatively, the displayed printer list 304 can be sorted based on distance, travel time, or other such location-based information based on the user 110's current location. The user 110's current location can be determined using the location sensor of the computing device 104. In some embodiments, the user 110 can manually filter, sort, and expand the printer list 304 suggested via the user interface.
[0089] In some embodiments, when a print job 302 is created and added to the print queue 148, the user 110 may not select a printer 108. Instead, the user 110 can proceed to any of the printers without selection to release the printable document 144 queued in the print queue 148. Alternatively, the user 110 can proceed to the selected printer 108 to release the printable document 144 queued in the print queue 148.
[0090] In block 410 of routine 400, server 106 receives a request to initiate a second authentication session associated with account 142. A second request can be received from printer 108, where user 110 wishes to release queued printable document 144. In some embodiments, printer 108 may have an account application 136. In some embodiments, the account application 136 of printer 108 provides a limited set of features compared to the account application 136 available on computing device 104.
[0091] In response to receiving the request, server 106 prompts printer 108 to perform the authentication procedure described herein. Therefore, printer 108 requests user 110 to tap contactless card 102 against printer 108 or a designated location to authenticate his / her identity. Account application 136 obtains password 124 from contactless card 102 via communication interface 126 of printer 108.In some embodiments, the same contactless card 102 used to initiate the first authentication session must be used to initiate the second authentication session. Alternatively, a second contactless card 102 (different from the contactless card 102 used to initiate the first authentication session) may be used to initiate the second authentication session, wherein the second contactless card 102 is also associated with account 142.
[0092] Account application 136 transmits the password 124 obtained from the presented contactless card 102 to server 106 for verification. If authentication of user 110's identity fails, printer 108 notifies user 110 of authentication failure. Therefore, printer 108 cannot access print job 302 in print queue 148 and cannot print printable document 144.
[0093] In some embodiments, printer 108 may not have the ability to receive and / or transmit password 124 from contactless card 102. In such cases, in response to a request for a second authentication session, server 106 prompts computing device 104 to perform an authentication procedure using contactless card 102. After the authentication process is completed, computing device 104 receives OTP 202 from server 106. OTP 202 is entered into printer 108 to verify the identity of user 110. In some embodiments, OTP 202 is entered manually, for example, using a keyboard or another input device. Alternatively, OTP 202 may be received electronically from computing device 104 by printer 108, for example, using a machine-readable code reader, such as a barcode scanner, QR code scanner, camera, etc. The code reader (not shown) of printer 108 scans the machine-readable portion of OTP 202. After receiving OTP 202 from printer 108, server 106 completes the authentication of user 110 and considers that the verified user 110 is requesting the release of printable document 144 at printer 108.
[0094] In some embodiments, the authentication used to initiate a second authentication session may be different from the authentication used to initiate a first authentication session. For example, authentication account 142 uses a first authentication routine in response to a first request for a first authentication session from computing device 104. The first authentication routine may be based solely on an authentication certificate, without using contactless card 102. For example, the first authentication routine may be based on one or more settings of account application 136 stored on computing device 104. Authentication of account 142 by printer 108 may use a second authentication routine, different from the first authentication routine. This may be because computing device 104 can be a trusted private device for user 110 who has registered with account 142 and has been using it for a certain period of time. Conversely, printer 108 can be a public device and therefore less secure or trusted than computing device 104.Therefore, a higher authentication level can be used to authenticate the second request compared to the authentication level used to authenticate the first request. Thus, the second authentication routine can use contactless card 102 to enhance security.
[0095] In block 412, in response to successful authentication of account 142 at printer 108, the server initiates a second authentication session. Server 106 may instruct print engine 146 to release print queue 148 associated with the verified user 110's account 142 to printer 108. Additionally, in block 414, print engine 146 releases print queue 148 associated with account 142 to printer 108. In some embodiments, print engine 146 and / or server 106 verify that printer 108 is authorized to print printable document 144 based on the type of printable document 144. Additionally or alternatively, print engine 146 and / or server 106 may verify whether printer 108 is capable of printing printable document 144.
[0096] In some embodiments, such verification may include checking that printer 108 has resources available for printing the selected printable document 144. The resources checked may include, but are not limited to, ink, paper, printhead, etc. Resources are checked according to the type of printable document 144. For example, if one of the printable documents 144 requires a specific type of resource, then printer 108 is verified to have that specific type of resource available.
[0097] Therefore, printer 108 receives print job 302 from print queue 148. In block 416, printer 108 prints the printable document 144 from print job 302. In some embodiments, after completing one or more print jobs 302, printer 108 performs an authentication procedure using contactless card 102. In some embodiments, after printing one or more printable documents 144, printer 108 performs an authentication procedure using contactless card 102. In this way, printer 108 ensures that user 110 is still present to collect a printed copy of the printable document 144 being printed by printer 108.
[0098] FIG5 illustrates an embodiment of a method, logic flow, or routine 500. Routine 500 may represent some or all of the operations performed by one or more embodiments described herein. For example, routine 500 may include some or all of the operations to select and print one or more printable documents 144 at self-service printer 108 in a secure manner as described herein. Embodiments are not limited in this context. In some embodiments, the operations described herein may be described as being performed by a particular device. However, in other embodiments, the operations may be performed by any or a combination of the devices described herein.
[0099] In block 502, user 110 selects a printable document 144 associated with account 142 for printing via computing device 104.User 110 selects a printable document 144 from a plurality of printable documents 144 available from account application 136. The user can only select a printable document 144 via account application 136 after successfully authenticating his / her identity. This authentication can be performed using limited authentication, for example, using only user 110's authentication certificate (without using contactless card 102). In some embodiments, authentication is performed using contactless card 102.
[0100] In block 504, after selecting a printable document 144, a list 304 of printers for printing the selected printable document 144 is generated and displayed. Printer list 304 may be generated by computing device 104. In some embodiments, printer list 304 may be generated by server 106. Printer list 304 is generated based on the type of the selected printable document 144. The type of printable document 144 may be a report, account statement, transaction history, check, funds transfer instruction, form, letter, offer, or a combination thereof. In some embodiments, the type of the selected printable document 144 may be privileged or non-privileged. Based on the type of printable document 144, printer 108 may or may not be permitted to print the printable document 144. For example, if the type of printable document 144 is privileged, then only a subset of printers 108 may be used to print the printable document 144. However, in the case of non-privileged printable document 144, any printer 108 may be used. The subset of printers used for privileged printable document 144 may have additional resources compared to other printers. For example, the subset of printers may have special inks, special paper, special printheads, additional security, end-to-end encryption, communication interface 126, etc. Specification 14 / 29 pages 17 CN 121511444 A
[0101] Furthermore, printer list 304 may be generated based on other attributes, such as the location of user 110. In some embodiments, the location may be determined based on computing device 104. Alternatively, user 110 may specify a target location and generate printer list 304 based on that target location. For example, printer list 304 includes the top N closest printers authorized to print the selected printable document 144. Alternatively, printer list 304 includes printers authorized to print the selected printable document 144 and located at a predetermined distance and travel time from the target location. Other filters may be used to generate printer list 304.
[0102] Printer list 304 is displayed to user 110 via account application 136. In some embodiments, printer list 304 may be selectable.
[0103] In block 506, the user selects printer 108 from printer list 304 to print printable document 144. The user proceeds to the selected printer 108.
[0104] In block 508, computing device 104 provides a user with an authentication code (OTP 202) for accessing printer 108 to print printable document 144. In response to a user 110 requesting server 106 to release printable document 144 to printer 108, server 106 provides this authentication code via computing device 104. User 110 may request such release of printable document 144 via printer 108, for example, using account application 136 on printer 108. In response, server 106 prompts user 110 via computing device 104 to verify his / her identity using contactless card 102. The authentication procedure described herein is performed based on computing device 104 accessing password 124 from contactless card 102 and transmitting password 124 to server 106 for verification. Server 106 provides the authentication code, i.e., OTP 202, to computing device 104 in response to successful verification / authentication.
[0105] In block 510, printer 108 receives and prints printable document 144 in response to receiving an authentication code from computing device 104. The authentication code may be scanned by printer 108 from computing device 104 using a scanner such as a barcode scanner, camera, QR code scanner, NFC reader, or any other machine-readable code scanner. Alternatively, user 110 manually enters the authentication code from computing device into printer 108. Printer 108 communicates the authentication code to server 106, and server 106 releases printable document 144 to printer 108 after the authentication code matches a generated authentication code.
[0106] FIG6 illustrates an embodiment of a logic flow or routine 600. Routine 600 may represent some or all of the operations performed by one or more embodiments described herein. For example, routine 600 may include some or all of the operations of performing an authentication procedure, such as enabling user 110 to access one or more features of account 142. Embodiments are not limited in this context. In some embodiments, the operations described herein may be described as being performed by a specific device. However, in other embodiments, the operations may be performed by any or a combination of the devices described herein.
[0107] In block 602, server 106 receives a request from account application 136 to access features of account 142. These features may include creating a print request, releasing a print queue 148, etc. Account application 136 may be executed on computing device 104, printer 108, etc. The received request includes a password 124 or is associated with password 124. Password 124 is obtained by account application 136 from contactless card 102.
[0108] In block 604, server 106 may decrypt password 124 by generating one or more diversity keys 122 based on master key 118 and counter 120.Server 106 may further verify password 124, for example, by determining that the MAC generated by server 106 matches the MAC in the decrypted password 124.
[0109] In block 606, server 106 may generate an authorization based on successful decryption and verification. This authorization may typically indicate that the requested access to a feature of account 142 will be granted.
[0110] In block 608, server 106 transmits the authorization to account application 136. This authorization may cause account application 136 to grant the requested access to the feature. However, in some embodiments, verification may fail, in which case account application 136 may prohibit user 110 from accessing the requested feature. Specification 15 / 29 pages 18 CN 121511444 A
[0111] FIG7A is a schematic diagram 700 illustrating an example configuration of contactless card 102, which may include a payment card, such as a credit card, debit card, or gift card, issued by a service provider whose service provider mark 706 is displayed on the front or back of the contactless card 102. In some examples, the contactless card 102 is not related to a payment card and may include, but is not limited to, an ID card. In some examples, the transaction card may include a dual-interface contactless payment card, a reward card, etc. The contactless card 102 may include a substrate 708, which may include a single layer or one or more laminates composed of plastics, metals, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyester, anodized titanium oxide, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 102 may have physical characteristics conforming to the ID-1 format of the ISO / IEC 7816 standard, and the transaction card may otherwise conform to the ISO / IEC 14443 standard. However, it should be understood that the contactless card 102 according to this disclosure may have different characteristics, and this disclosure does not require the transaction card to be implemented in a payment card.
[0112] The contactless card 102 may also include identification information 710 displayed on the front and / or back of the card and a contact pad 712. Contact pad 712 may include one or more pads and be configured to establish contact with another client device (such as an ATM, user equipment, smartphone, laptop, desktop computer, or tablet computer) via a transaction card. The contact pad may be designed according to one or more standards, such as the ISO / IEC 7816 standard, and enable communication according to the EMV protocol. The contactless card 102 may also include processing circuitry, an antenna, and other components that will be discussed further in Figure 7B. These components may be located behind the contact pad 712 or elsewhere on the substrate 708 (e.g., within different layers of the substrate 708) and may be electrically and physically coupled to the contact pad 712.The contactless card 102 may also include a magnetic stripe or magnetic tape, which may be located on the back of the card (not shown in FIG. 7A). The contactless card 102 may also include a near-field communication (NFC) device coupled to an antenna capable of communicating via the NFC protocol. The embodiments are not limited in this manner.
[0113] As shown in FIG. 7B, the contact pad 712 of the contactless card 102 may include processing circuitry 714 for storing, processing, and communicating information, which includes a processor 716, a memory 112, and one or more communication interfaces 126. It should be understood that the processing circuitry 714 may include additional components, including a processor, memory, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and tamper-proof hardware, as required to perform the functions described herein.
[0114] The memory 112 may be a read-only memory, a write-once-read-many memory, or a read / write memory, such as RAM, ROM, and EEPROM, and the contactless card 102 may include one or more of these memories. Read-only memory can be programmed by the manufacturer to be read-only or one-time programmable. One-time programmability provides the opportunity to write once and then read multiple times. One-time write / read-many memory can be programmed at some point after the memory chip has been manufactured. Once the memory is programmed, it cannot be rewritten, but it can be read multiple times. Read / write memory can be programmed and reprogrammed multiple times after leaving the factory. Read / write memory can also be read multiple times after leaving the factory. In some instances, memory 112 may be an encrypted memory that uses an encryption algorithm executed by processor 716 to encrypt data.
[0115] Memory 112 may be configured to store one or more applets 116, one or more counters 120, unique ID 114, master key 118, UDK 702, master key 122, and PAN sequence 704. One or more applets 116 may include one or more software applications, such as Java® Card applets, configured to execute on one or more contactless cards 102. However, it should be understood that the applet 116 is not limited to the Java Card applet, but can be any software application operable on contactless cards or other devices with limited memory. One or more counters 120 may include numeric counters sufficient to store integers. The unique ID 114 may include a unique alphanumeric identifier assigned to the contactless card 102, and this identifier can distinguish the contactless card 102 from other contactless cards 102. In some examples, the unique ID 114 can identify both the customer and the account assigned to that customer.Specification page 16 / 29 19 CN 121511444 A
[0116] The processor 716 and memory elements of the foregoing exemplary embodiments are described with reference to contact pad 712, but this disclosure is not limited thereto. It should be understood that these elements may be implemented outside of or completely separated from contact pad 712, or implemented as additional elements other than the processor 716 and memory 112 elements located within contact pad 712.
[0117] In some examples, the contactless card 102 may include one or more antennas 718. One or more antennas 718 may be placed within the contactless card 102 and around the processing circuitry 714 of contact pad 712. For example, one or more antennas 718 may be integrated with the processing circuitry 714, and one or more antennas 718 may be used with an external boost coil. As another example, one or more antennas 718 may be external to contact pad 712 and processing circuitry 714.
[0118] In embodiments, the coil of the contactless card 102 may serve as the secondary coil of an air-core transformer. The terminal can communicate with the contactless card 102 by cutting off power or amplitude modulation. The contactless card 102 can infer data transmitted from the terminal using gaps in the power connection of the contactless card 102, which can be functionally maintained by one or more capacitors. The contactless card 102 can communicate in reverse by switching the load or load modulation on the coil of the contactless card 102. Load modulation can be detected in the coil of the terminal by interference. More generally, using antenna 718, processor 716 and / or memory 112, the contactless card 102 provides a communication interface for communication via NFC, Bluetooth and / or Wi-Fi communication.
[0119] As explained above, the contactless card 102 can be built on a software platform operable on a smart card or other device with limited memory, such as a JavaCard, and one or more applications or applets can be securely executed. Applets 116 can be added to the contactless card to provide a one-time password (OTP) for the MFA in various mobile application-based use cases. Applet 116 can be configured to respond to one or more requests (such as near-field data exchange requests) from a reader (such as a mobile NFC reader, e.g., a mobile computing device 104 or a point-of-sale terminal) and generate an NDEF message that includes a password-secure OTP encoded as an NDEF text tag. The NDEF message may include a password (such as password 124) or any other data.
[0120] An example of an NDEF OTP is an NDEF short record layout (SR=1). In such examples, one or more applets 116 can be configured to encode the OTP as NDEF type 4, which is a well-known type of text tag.In some examples, the NDEF message may include one or more records. The applet 116 may be configured to add one or more static tag records in addition to the OTP record.
[0121] In some examples, one or more applets 116 may be configured to emulate an RFID tag. The RFID tag may include one or more polymorphic tags. In some examples, different password data is presented each time the tag is read, which may indicate the reliability of the contactless card 102. Based on one or more applets 116, NFC readings of the tag can be processed, the data can be transmitted to a server, such as a bank system server, and the data can be verified at the server.
[0122] In some examples, the contactless card 102 and the server may include certain data that allows the card to be correctly identified. The contactless card 102 may include one or more unique identifiers (not shown). A counter 120 may be configured to increment each time a read operation occurs. In some examples, each time data is read from contactless card 102 (e.g., via a mobile device), counter 120 is sent to a server for verification and to determine whether counter 120 is equal to (as part of verification) the server's counter.
[0123] One or more counters 120 may be configured to prevent replay attacks. For example, if a password has been obtained and replayed, the password is immediately rejected if counter 120 has been read or used or otherwise ignored. If counter 120 has not been used, it may be replayed. In some examples, the counter incremented on contactless card 102 is different from the counter incremented for a transaction. Contactless card 102 cannot determine the application of transaction counter 120 because there is no communication between applets 116 on contactless card 102. In some examples, contactless card 102 may include a first applet 440-1 and a second applet 440-2, the first applet 440-1 being a transaction applet. Each applet 440-1 and 440-2 may include a corresponding counter 120.
[0124] In some examples, counter 120 may be out of sync. In some examples, to account for accidental reads that initiate a transaction, such as reads at an angle, counter 120 may be incremented but the application does not process counter 120. In some examples, when mobile device 10 is woken up, NFC may be enabled and computing device 104 may be configured to read available tags, but no action is taken in response to the read.
[0125] To keep counter 120 synchronized, an application, such as a background application, can be executed to detect when computing device 104 wakes up and synchronize with the bank system's server to indicate a read that has occurred due to the detection, and then move counter 120 forward. In other examples, a hashed one-time password can be used so that a window of erroneous synchronization can be accepted. For example, if it is within a threshold of 10, counter 120 can be configured to move forward. But if it is within a different threshold number, such as 10 or 600, a request to perform resynchronization can be processed, which is requested by one or more applications via a tap, gesture, or other indication by the user on the user's device one or more times. If counter 120 increments in the appropriate order, then it can be known that the user has done so.
[0126] The key diversification technique described herein with reference to counter 120, master key 118, UDK 702, and diversification key 122 is an example of encryption and / or decryption in key diversification techniques. This example key diversification technique should not be considered as a limitation of this disclosure, as this disclosure is equally applicable to other types of key diversification techniques.
[0127] During the creation process of the contactless card 102, each card can be uniquely assigned two cryptographic keys. The cryptographic keys may include symmetric keys that can be used for both encryption and decryption of data. The Triple DES (3DES) algorithm can be used by EMV, and it is implemented by hardware in the contactless card 102. By using a key diversification process, one or more keys can be derived from the master key based on uniquely identifiable information for each entity requiring a key.
[0128] In some examples, to overcome the vulnerabilities of the 3DES algorithm, which may be susceptible to exploits, session keys (such as unique keys for each session) can be derived, but instead of using the master key, unique card-derived keys and counters can be used as diversification data. For example, each time the contactless card 102 is used in operation, different keys can be used for creating a Message Authentication Code (MAC) and performing encryption. This results in three layers of cryptography. Session keys can be generated by one or more applets and derived using an application transaction counter and one or more algorithms (as defined in EMV 4.3 Book 2 A1.3.1 Common Session Key Derivation).
[0129] Further, the increment for each card can be unique and assigned through personalized allocation or algorithmically through some identification information. For example, odd-numbered cards can increment by 2, and even-numbered cards can increment by 5. In some examples, the increment can also vary in terms of sequential reading, such that a card can increment in a repeating order of 1, 3, 5, 2, 2, ...The specific order or algorithmic order can be defined during personalization or in one or more processes derived from a unique identifier. This makes it more difficult for a replay attacker to generalize from a small number of card instances.
[0130] The authentication message can be delivered as the content of a text NDEF record in hexadecimal ASCII format. In another example, the NDEF record can be encoded in hexadecimal format.
[0131] Figure 8 illustrates an NDEF short record layout (SR=1) data structure 800 according to an example embodiment. One or more applets 116 can be configured to encode the OTP as NDEF type 4, which is a well-known type of text tag. In some examples, the NDEF message may include one or more records. The applet can be configured to add one or more static tag records in addition to the OTP record. Exemplary labels include, but are not limited to, label type: well-known type, text, encoded English (en); Applet ID: D2760000850101; functionality: read-only access; encoding: authentication messages can be encoded in ASCII hexadecimal; type-length value data can be provided as a personalized parameter that can be used to generate NDEF messages. In one embodiment, the authentication template may include a first record having a well-known index for providing actual dynamic authentication data. Data structure 800 may include passwords such as password 124 or password 202, and any other data provided by applet 116.
[0132] FIG9 illustrates an embodiment of an exemplary computer architecture 900 suitable for implementing the various embodiments as described above. In one embodiment, computer architecture 900 may include or be implemented as part of system 100.
[0133] As used in this application, the terms “system” and “component” are intended to refer to computer-related entities, hardware, combinations of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing computer architecture 900. For example, a component can be, but is not limited to, a processor, a hard disk drive, multiple storage drives (optical and / or magnetic storage media), an object, an executable file, an execution thread, a program, and / or a process running on a computer. By way of example, an application running on a server and the server itself can both be components. One or more components can reside within an executing process and / or thread, and components can be localized on a single computer and / or distributed across two or more computers. Furthermore, components can communicatively couple with each other to coordinate their operation through various types of communication media. This coordination can involve one-way or two-way exchange of information. For example, components can communicate information in the form of communicated signals through a communication medium. This information can be implemented as signals assigned to various signal lines.In this type of allocation, each message is a signal. However, further embodiments may alternatively employ data messages. Such data messages can be sent via various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.
[0134] Computer architecture 900 includes various general-purpose computing elements, such as one or more processors, multi-core processors, coprocessors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input / output (I / O) components, power supplies, etc. However, embodiments are not limited to those implemented by computer architecture 900.
[0135] As shown in FIG9, computer architecture 900 includes computer 912, which includes processor 902, system memory 904, and system bus 906. Processor 902 may be any of a variety of commercially available processors. Computer 912 may represent computing device 104 and / or server 106.
[0136] System bus 906 provides processor 902 with interfaces for system components including but not limited to system memory 904. System bus 906 can be any bus architecture among various types of bus architectures that can be further interconnected to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. Interface adapters can be connected to system bus 906 via a slot architecture. Example slot architectures can include, but are not limited to, Accelerated Graphics Port (AGP), card bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), NuBus, Peripheral Component Interconnect (Extended), (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), etc.
[0137] Computer architecture 900 may include or implement various articles of manufacture. Articles of manufacture may include computer-readable storage media for storing logic. Examples of computer-readable storage media can include any tangible medium capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, and so on.Examples of logic may include executable computer program instructions implemented using any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, and the like. Embodiments may also be implemented, at least in part, as instructions contained in or on a non-transitory computer-readable medium that can be read and executed by one or more processors to enable the performance of the operations described herein. Specification page 19 / 29 22 CN 121511444 A
[0138] System memory 904 may include various types of computer-readable storage media in the form of one or more high-speed memory cells, such as read-only memory (ROM), random access memory (RAM), dynamic RAM (DRAM), double data rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory (such as ferroelectric polymer memory, bidirectional memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory), magnetic cards or optical cards, device arrays such as redundant array of independent disk drives (RAID), solid-state memory devices (e.g., USB memory, solid-state drive (SSD), and any other type of storage media suitable for storing information. In the example embodiment shown in FIG9, system memory 904 may include non-volatile 908 and / or volatile 910. Basic input / output system The system (BIOS) can be stored in non-volatile 908.
[0139] The computer 912 may include various types of computer-readable storage media in the form of one or more lower-speed memory cells, including internal (or external) hard disk drive 914, disk drive 916 for reading from or writing to removable disk 918, and optical disk drive 920 for reading from or writing to removable optical disk 922 (e.g., CD-ROM or DVD). Hard disk drive 914, disk drive 916, and optical disk drive 920 may be connected to system bus 906 via HDD interface 924, and FDD interface 926 and optical disk drive interface 928, respectively. HDD interface 924 for external drive implementations may include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
[0140] The drives and associated computer-readable media provide volatile and / or non-volatile storage of data, data structures, computer-executable instructions, etc.For example, multiple program modules may be stored in the drive and non-volatile 908, and volatile 910, including operating system 930, one or more applications 932, other program modules 934, and program data 936. In one embodiment, one or more applications 932, other program modules 934, and program data 936 may include, for example, various applications and / or components of system 100.
[0141] Users may type commands and information into computer 912 using one or more wired / wireless input devices, such as keyboard 938 and pointing devices (such as mouse 940). Other input devices may include microphones, infrared (IR) remote controls, radio frequency (RF) remote controls, game pads, styluses, card readers, dongles, fingerprint readers, gloves, graphics tablets, joysticks, keyboards, retinal readers, touchscreens (e.g., capacitive, resistive, etc.), trackballs, track pads, sensors, styluses, and the like. These and other input devices are typically connected to the processor 902 via an input device interface 942 coupled to the system bus 906, but may be connected via other interfaces such as parallel ports, IEEE 1394 serial ports, game ports, USB ports, IR interfaces, etc.
[0142] A monitor 944 or other type of display device is also connected to the system bus 906 via an interface, such as via a video adapter 946. The monitor 944 may be internal or external to the computer 912. In addition to the monitor 944, the computer typically includes other peripheral output devices such as speakers, printers, etc.
[0143] The computer 912 may operate in a networked environment using a logical connection via wired and / or wireless communication to one or more remote computers, such as a remote computer 948. The remote computer 948 may be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer-to-peer device, or other public network node, and typically includes many or all of the elements described relative to the computer 912, although only memory and / or storage device 950 is shown for brevity. The described logical connections include wired / wireless connections to a local area network 952 and / or a larger network (e.g., a wide area network 954). Such LAN and WAN networking environments are commonplace in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to global communication networks, such as the Internet. Specification 20 / 29 pages 23 CN 121511444 A
[0144] When used in a local area network 952 networking environment, computer 912 is connected to local area network 952 via a wired and / or wireless communication network interface or network adapter 956.Network adapter 956 can facilitate wired and / or wireless communication to local area network 952, and may also include a wireless access point disposed thereon for communicating with the wireless functionality of network adapter 956.
[0145] When used in a networked environment of wide area network 954, computer 912 may include modem 958, or a communication server connected to wide area network 954, or other means for establishing communication through wide area network 954, such as via the Internet. Modem 958, which may be internal or external and wired and / or wireless, is connected to system bus 906 via input device interface 942. In a networked environment, program modules or portions thereof depicted relative to computer 912 may be stored in remote memory and / or storage device 950. It should be understood that the network connections shown are exemplary, and other means of establishing communication links between computers may be used.
[0146] Computer 912 is operable to communicate with wired and wireless devices or entities using the IEEE 802 series of standards, such as wireless devices operable in wireless communication (e.g., IEEE 802.11 air modulation technology). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wireless technologies. Therefore, communication can be a predefined structure like a conventional network or simply ad hoc communication between at least two devices. Wi-Fi networks use radio technology known as IEEE 802.11 (a, b, g, n, ac, ax, etc.) to provide secure, reliable, and fast wireless connectivity. Wi-Fi networks can be used to interconnect computers, connect to the Internet, and connect to wired networks (using IEEE 802.3 related media and functions).
[0147] The various elements of the device as previously described herein with reference to the accompanying drawings may include various hardware elements, software elements, or combinations of both. Examples of hardware components can include devices, logic devices, components, processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application-specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), memory cells, logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. Examples of software components can include software components, programs, applications, computer programs, application programs, system programs, software development programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application programming interfaces (APIs), instruction sets, computational code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof.However, the determination of whether an embodiment is implemented using hardware and / or software elements can vary based on any number of factors, such as the expected computing rate, power level, thermal tolerance, processing cycle budget, input data rate, output data rate, memory resources, data bus speed, and other related or performance constraints desired for a given implementation.
[0148] One or more aspects of at least one embodiment may be implemented by representative instructions stored on a machine-readable medium, representing various logic within a processor that, when read by a machine, causes machine-manufacturing logic to perform the techniques described herein. Such a representation, referred to as an "IP core," may be stored on a tangible, machine-readable medium and provided to various clients or manufacturing facilities for loading into a manufacturing machine or processor of manufacturing logic. Some embodiments may be implemented, for example, using a machine-readable medium or article of manufacture that can store instructions or sets of instructions that, if executed by a machine, cause the machine to perform the methods and / or operations described in the embodiments. Such machines may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and / or software. Machine-readable media or articles may include, for example, any suitable type of memory cell, memory device, memory article, memory medium, storage device, storage article, storage medium and / or storage cell, such as memory, removable or non-removable media, erasable or non-erasable media, writable or rewritable media, digital or analog media, hard disk, floppy disk, optical disc read-only memory (CD-ROM), recordable optical disc (CD-R), rewritable optical disc (CD-RW), optical disc, magnetic media, magneto-optical media, removable memory cards or disks, various instruction manuals of type A (DVD), magnetic tape, cassette tape or the like. Instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, etc., implemented using any suitable high-level, low-level, object-oriented, visual, compiled and / or interpreted programming language.
[0149] The components and features of the devices described above can be implemented using any combination of discrete circuits, application-specific integrated circuits (ASICs), logic gates, and / or single-chip architectures. Additionally, the features of the devices can be implemented using microcontrollers, programmable logic arrays, and / or microprocessors, or any combination thereof, where appropriate. Note that hardware, firmware, and / or software components may be collectively or individually referred to herein as “logic” or “circuit.”
[0150] FIG10 is a timing diagram illustrating example sequences for providing authenticated access according to one or more embodiments of the present disclosure.Serial stream 1000 may include contactless card 102 and computing device 104, which may include application 1002 and processor 1004. Application 1002 may be any of application printable document 144, 144, or any other application executing on computing device 104.
[0151] At line 1008, application 1002 communicates with contactless card 102 (e.g., after being brought near contactless card 102). Communication between application 1002 and contactless card 102 may include: contactless card 102 being sufficiently close to a card reader (not shown) of computing device 104 to enable NFC data transfer between application 1002 and contactless card 102.
[0152] At line 1006, after communication is established between computing device 104 and contactless card 102, contactless card 102 generates a Message Authentication Code (MAC) password. In some examples, this can occur when application 1002 reads contactless card 102. Specifically, this can happen when reading (e.g., NFC reading) a Near Field Data Exchange (NDEF) tag, which can be created according to the NFC data exchange format. For example, a reader application such as application 1002 can transmit messages, such as a applet selection message, which has an applet ID that generated the applet's NDEF. After confirming the selection, a file selection message can be transmitted, followed by a sequence of file read messages. For example, the sequence may include "Select function file", "Read function file", and "Select NDEF file". At this time, a counter value maintained by the contactless card 102 may be updated or incremented, followed by "Read NDEF file". At this time, a message that may include a header and a shared secret may be generated. A session key may then be generated. A MAC cipher may be created from a message that may include a header and a shared secret. The MAC cipher may then be concatenated with one or more random data blocks, and the MAC cipher and random number (RND) may then be encrypted with the session key. Afterward, the cipher and header may be concatenated and encoded into ASCII hexadecimal, and returned in NDEF message format (in response to the "Read NDEF file" message).
[0153] In some examples, the MAC cipher may be transmitted as an NDEF tag, and in other examples, the MAC cipher may be included as a Uniform Resource Indicator (e.g., as a formatted string). In some examples, application 1002 may be configured to transmit a request to contactless card 102 that includes instructions for generating a MAC cipher.
[0154] At line 1010, contactless card 102 sends the MAC password to application 1002. In some examples, the transmission of the MAC password occurs via NFC, but this disclosure is not limited thereto.In other examples, the communication may occur via Bluetooth, Wi-Fi, or other wireless data communication methods. At line 1012, application 1002 communicates the MAC password to processor 1004.
[0155] At line 1014, processor 1004 verifies the MAC password according to instructions from application 122. For example, the MAC password may be verified as explained below. In some examples, the verification of the MAC password may be performed by a device other than computing device 104, such as a server of a banking system that communicates data with computing device 104. For example, processor 1004 may output the MAC password for transmission to a server of the banking system, which may verify the MAC password. In some examples, the MAC password may be used as a digital signature for verification purposes. Other digital signature algorithms, such as public-key asymmetric algorithms, such as Digital Signature Algorithms and RSA algorithms, or zero-knowledge protocols, may be used to perform the verification.
[0156] FIG11 illustrates a system 1100 configured to implement one or more embodiments of the present disclosure. As explained on pages 22 / 29 of the specification below, CN 121511444 A, during the contactless card creation process, two cryptographic keys can be uniquely assigned to each card. The cryptographic keys may include symmetric keys that can be used for both encryption and decryption of data. The Triple DES (3DES) algorithm can be used by EMV, and it is implemented by hardware in the contactless card. Through a key diversification process, one or more keys can be derived from the master key based on uniquely identifiable information for each entity requiring a key.
[0157] Regarding master key management, each part of a portfolio in which one or more applets are published may require two issuer master keys 1102, 1126. For example, the first master key 1102 may include an issuer password generation / authentication key (Iss-Key-Auth), and the second master key 1126 may include an issuer data encryption key (Iss-Key-DEK). As further explained in this document, the two issuer master keys 1102 and 1126 are diversified into card master keys 1108 and 1120, which are unique to each card. In some examples, the network profile records ID (pNPR) 522 and / or derived key index (pDKI) 1124 as background data, which can be used to identify which issuer master keys 1102 and 1126 are to be used in the cipher process for authentication. The system performing authentication can be configured to retrieve the values of pNPR 1122 and pDKI 1124 for contactless cards during authentication.
[0158] In some examples, to improve the security of the solution, session keys (such as a unique key for each session) can be derived, but instead of using a master key, a unique card-derived key and counter can be used as diversifying data, as explained above. For example, each time the card is used in operation, a different key can be used to create a Message Authentication Code (MAC) and perform encryption. Regarding session key generation, the key used to generate passwords and encrypt data in one or more applets can include session keys based on the card's unique key (Card-Key-Auth 1108 and Card-Key-Dek 1120). Session keys (Auth-Session-Key 1130 and DEK-Session-Key 1110) can be generated by one or more applets and derived using an application transaction counter (pATC) 1104 and one or more algorithms. To fit the data into one or more algorithms, only the two lower-order bytes of the 4-byte pATC 1104 are used. In some examples, the four-byte session key derivation method may include: F1:= PATC (lower 2 bytes) || 'F0' || '00' || PATC (4 bytes) F1:= PATC (lower 2 bytes) || '0F' || '00' || PATC (4 bytes) SK:={(ALG (MK) [F1] ) || ALG (MK) [F2]}, where ALG may include 3DES ECB and MK may include the card-uniquely derived master key.
[0159] As described herein, one or more MAC session keys may be derived using the lower two bytes of the pATC 1104 counter. On each tap of the contactless card, pATC 1104 is configured to be updated, and the card master key Card-Key-AUTH 508 and Card-Key-DEK 1120 are further diversified into session keys Aut-Session-Key 1130 and DEK-Session-KEY 1110. pATC 1104 may be initialized to zero at personalization or applet initialization time. In some examples, the pATC 1104 counter may be initialized during or before personalization and may be configured to increment by 1 on each NDEF read.
[0160] Further, the update for each card may be unique and assigned through personalization or algorithmically through pUID or other identification information. For example, odd-numbered cards may increment or decrement by 2, and even-numbered cards may increment or decrement by 5. In some examples, the increment can also vary in terms of sequential reading, so that a card can increment in a repeating order of 1, 3, 5, 2, 2, ...The specific order or algorithmic order can be defined during personalization or in one or more processes derived from a unique identifier. This makes it more difficult for a replay attacker to generalize from a small number of card instances.
[0161] The authentication message can be delivered as the contents of a text NDEF record in hexadecimal ASCII format. In some examples, it may consist only of authentication data and an 8-byte random number followed by the MAC of the authentication data. In some examples, the random number may precede the password A and may be a block length. In other examples, there may be no restriction on the length of the random number. In an example further down to page 23 / 29 of the specification, 26 CN 121511444 A, the total data (i.e., the random number plus the password) may be a multiple of the block size. In these examples, an additional 8-byte block may be added to match the block generated by the MAC algorithm. For example, if the algorithm used uses a 16-byte block, it may be an even multiple of the block size, or the output may be automatically or manually padded to a multiple of the block size.
[0162] The MAC may be performed by the function key (AUT-Session-Key) 1130. The data specified in the cipher can be processed using the javacard.signature method: ALG_DES_MAC8_ISO9797_1_M2_ALG3 to be associated with the EMV ARQC verification method. The key used for this calculation may include the session key AUT-Session-Key 1130, as explained above. As explained above, the lower two bytes of the counter can be used to diversify one or more MAC session keys. As explained below, AUT-Session-Key 1130 can be used for MAC data 1106, and the resulting data or cipher An 1114 and random number RND can be encrypted using DEK-Session-Key 1110 to create cipher B or output 1118 sent in the message.
[0163] In some examples, one or more HSM commands can be processed for decryption, such that the final 16 bytes (binary, 32-byte hexadecimal) may include 3DES symmetric encryption using CBC mode, where the zero IV of the random number is followed by MAC authentication data. The key used for this encryption may include a session key DEK-Session-Key 1110 derived from Card-Key-DEK 1120. In this case, the ATC value used for the session key derivation is the least significant byte of the counter pATC 1104.
[0164] The following format represents an example embodiment in binary form. Further, in some examples, the first byte may be set to ASCII 'A'.
[0165] Specification 24 / 29 pages 27 CN 121511444 A
[0166]
[0167] Another exemplary format is shown below. In this example, the label may be encoded in hexadecimal format.
[0168] Specification 25 / 29 pages 28 CN 121511444 A
[0169]
[0170] The UID field of the received message may be extracted to derive the card master key (Card-Key-Auth 925 and Card-Key-DEK 930) for that particular card from the master key Iss-Key-AUTH 905 and Iss-Key-DEK 910. Using the card master key (Card-Key-Auth 508 and Card-Key-DEK 1120), the received message counter (pATC) field can be used to derive a session key (Aut-Session-Key 1130 and DEK-Session-Key 1110) for that particular card. Password B 1118 can be decrypted using DEK-Session-KEY, which produces password An 1114 and RND, and RND can be discarded. The UID field can be used to look up the shared secret of the contactless card, which, along with the message version, UID, and pATC fields, can be processed using the password MAC with the recreated Aut-Session-Key to create a MAC output, such as MAC'. If MAC' is the same as password An 1114, this indicates that message decryption and MAC checks have both passed. pATC can then be read to determine if it is valid.
[0171] During an authentication session, one or more passwords can be generated by one or more applications. For example, one or more passwords can be generated as a 3DES MAC using ISO 9797-1 algorithm 3 with method 2 padding via one or more session keys (such as Aut-Session-Key 1130). Input data 1106 can take the form of: version (2), pUID (8), pATC (4), shared secret (4). In some examples, the numbers in parentheses can include length in bytes. In some examples, the shared secret can be generated by one or more random number generators that can be configured to ensure that the random numbers are unpredictable through one or more security processes. In some examples, the shared secret can include a random 4-byte binary number injected into the card at a personalized time known to the authentication service. During the authentication session, the shared secret may not be provided to the mobile application from one or more applets.Method 2 padding may include adding a mandatory 0x '80' byte to the end of the input data, and adding 0x '00' bytes that can be added to the end of the resulting data up to an 8-byte boundary. The resulting cipher may include 8 bytes in length.
[0172] In some examples, one benefit of encrypting an unshared random number as the first block along with the MAC cipher is that it acts as an initialization vector when using the CBC (Block Chaining) mode of a symmetric encryption algorithm. This allows for block-to-block "scrambling" without having to pre-establish a fixed or dynamic IV.
[0173] By including an Application Transaction Counter (pATC) as part of the data included in the MAC cipher, the authentication service can be configured to determine whether the value conveyed in the plaintext data has been tampered with. Furthermore, by including the version in one or more ciphers on pages 26 / 29 of this specification, it is difficult for an attacker to intentionally distort the application version to attempt to downgrade the strength of the cipher solution. In some examples, the pATC may start from zero and be updated to 1 each time one or more applications generate authentication data. The authentication service can be configured to track the pATC used during the authentication session. In some examples, when the authentication data uses a pATC equal to or less than a previous value received by the authentication service, this can be interpreted as an attempt to replay an old message, and the authenticated message can be rejected. In some examples, when the pATC is greater than a previously received value, this can be estimated to determine if it is within an acceptable range or threshold, and if it exceeds the range or threshold or is outside of that range or threshold, the verification can be considered a failure or unreliable. In MAC operation 1112, data 1106 is processed via MAC using Aut-Session-Key 1130 to produce an encrypted MAC output (password A) 1114.
[0174] To provide additional protection against brute-force attacks on the key on the exposed card, it is expected that the MAC password 1114 is encrypted. In some examples, the data or password An 1114 to be included in the ciphertext may include: a random number (8), a password (8). In some examples, the number in parentheses may include a length in bytes. In some examples, the random number may be generated by one or more random number generators, which may be configured to ensure the random number is unpredictable through one or more security processes. The key used to encrypt the data may include a session key. For example, the session key may include DEK-Session-Key 1110. In encryption operation 1116, the data or cipher An 1114 and RND are processed using DEK-Session-Key 510 to produce encrypted data, namely cipher B 1118.Data 1114 can be encrypted using 3DES in ciphertext block chaining mode to ensure that an attacker must run any attack within all the ciphertext. As a non-limiting example, other algorithms such as Advanced Encryption Standard (AES) can be used. In some examples, an initialization vector of 0× '000000000000000000' can be used. Any attacker attempting to brute-force the key used to encrypt this data will not be able to determine when the correct key has been used, because due to its random appearance, correctly decrypted data will be indistinguishable from incorrectly decrypted data.
[0175] In order for the authentication service to verify one or more passwords provided by one or more applets, the following data must be transmitted in plaintext from one or more applets to the mobile device during the authentication session: version number, used to determine the cipher method used and the message format used to verify the password, which allows the method to be changed in the future; pUID, used to retrieve the cipher asset and derive the card key; and pATC, used to derive the session key used for the password.
[0176] Figure 12 illustrates a method 1200 for generating a password. For example, at box 1202, the Network Profile Record ID (pNPR) and Derived Key Index (pDKI) can be used to identify which issuer master keys are used for authentication during the encryption process. In some examples, the method may include performing authentication to retrieve the values of pNPR and pDKI for the contactless card during authentication.
[0177] At box 1204, the issuer master key can be diversified by combining the issuer master key with the card unique ID number (pUID) and PAN serial number (PSN) of one or more applets (e.g., payment applets).
[0178] At box 1206, Card-Key-Auth and Card-Key-DEK (unique card keys) can be created by diversifying the issuer master key to generate a session key (which can be used to generate a MAC cipher).
[0179] At box 1208, the key used to generate the cipher and encrypt data in one or more applets may include the session key of box 1030 based on the card unique key (Card-Key-Auth and Card-Key-DEK). In some examples, these session keys may be generated by one or more applets and derived using pATC to produce session keys Aut-Session-Key and DEK-Session-Key.
[0180] Figure 13 depicts an exemplary process 1300 illustrating key diversification according to one example. Initially, the sender and receiver may be equipped with two different master keys. For example, the first master key may include a data encryption master key, and the second master key may include a data integrity master key.The sender has a counter value that can be updated at block 1302, (Pages 27 / 29, CN 121511444 A) and other data that can be securely shared with the receiver, such as data to be protected.
[0181] At block 1304, the counter value can be encrypted by the sender using a data encryption master key to generate a data encryption-derived session key, and the counter value can also be encrypted by the sender using a data integrity master key to generate a data integrity-derived session key. In some examples, the entire counter value or a portion of the counter value can be used between the two encryptions.
[0182] In some examples, the counter value may not be encrypted. In these examples, the counter value can be transmitted between the sender and the receiver in plaintext, i.e., without encryption.
[0183] At block 1306, the data to be protected is processed by the sender using a data integrity session key and a cryptographic MAC algorithm in a cryptographic MAC operation. The protected data (including plaintext and shared secret) can be used to generate a MAC using one of the session keys (AUT-Session-Key).
[0184] At block 1308, the data to be protected can be encrypted by the sender using a session key derived from data encryption in conjunction with a symmetric encryption algorithm. In some examples, the MAC is combined with an equal amount of random data, for example, every 8 bytes, and then encrypted using a second session key (DEK-Session-Key).
[0185] At block 1310, the encrypted MAC, along with information sufficient to identify additional secret information (such as the shared secret, master key, etc.), is transmitted from the sender to the receiver for cipher verification.
[0186] At block 1312, the receiver uses the received counter value to independently derive two derived session keys from the two master keys as explained above.
[0187] At block 1314, the session keys derived from data encryption are used in conjunction with a symmetric decryption operation to decrypt the protected data. Additional processing of the exchanged data then occurs. In some examples, after the MAC is extracted, it is expected to be regenerated and matched. For example, when verifying a password, it can be decrypted using an appropriately generated session key. The protected data can be reconstructed for verification. The MAC operation can be performed using an appropriately generated session key to determine if it matches the decrypted MAC. Since the MAC operation is an irreversible process, the only way to verify is to try to recreate it from the source data.
[0188] At block 1316, the data integrity-derived session key is used in conjunction with the password MAC operation to verify that the protected data has not been modified.
[0189] Some examples of the methods described herein can advantageously confirm when successful authentication is determined when the following conditions are met.First, the ability to verify the MAC indicates that the derived session key is correct. A MAC can only be correct if decryption is successful and a correct MAC value is generated. Successful decryption indicates that a correctly derived encryption key was used to decrypt the encrypted MAC. Since the derived session key is created using a master key known only to the sender (e.g., the transmitting device) and the receiver (e.g., the receiving device), it can be trusted that the contactless card that initially created and encrypted the MAC is indeed authentic. Furthermore, the counter values used to derive the first and second session keys can be shown as valid and can be used to perform authentication operations.
[0190] Subsequently, both derived session keys can be discarded, and the next iteration of data exchange will update the counter values (returning to box 1302), and (at box 1310) a new set of session keys can be created. In some examples, the combined random data can be discarded.
[0191] It will be appreciated that the exemplary device shown in the block diagrams described above can represent a functionally descriptive example of many potential implementations. Therefore, the division, omission, or inclusion of block functions depicted in the accompanying drawings does not imply that hardware components, circuits, software, and / or elements used to implement these functions will necessarily be divided, omitted, or included in the embodiments.
[0192] At least one computer-readable storage medium may include instructions that, when executed, cause the system to perform any of the computer-implemented methods described herein.
[0193] Some embodiments may be described using the expressions “an embodiment” or “embodiment” together with their derivatives. These terms mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment. The appearance of the phrase “in one embodiment” in various places in the specification does not necessarily refer to the same embodiment. Furthermore, unless otherwise stated, the features described above are considered to be used in any combination. Thus, any feature discussed separately may be used in combination with each other unless it is noted that these features are incompatible with each other.
[0194] It is to be emphasized that an abstract of this disclosure is provided to allow the reader to quickly determine the nature of this technical disclosure. It is understood at the time of submission of this document that it is not intended to be construed as limiting the scope or meaning of the claims. Furthermore, as can be seen from the foregoing detailed description, various features have been grouped together in a single embodiment for the purpose of simplifying this disclosure. The approach of this disclosure should not be construed as reflecting an intention to require more features than expressly stated in each claim. Rather, as reflected in the following claims, the inventive subject matter lies in fewer than all features of a single disclosed embodiment. Therefore, the following claims are incorporated herein by reference, wherein each claim stands independently as a separate embodiment.In the appended claims, the terms “including” and “in which” are used as concise English equivalents to the respective terms “comprising” and “wherein”. Furthermore, the terms “first,” “second,” and “third” are not intended to impose numerical requirements on their objects.
[0195] Examples of the disclosed architecture have been described above. It is certainly impossible to describe every conceivable combination of components and / or methods, but those skilled in the art will recognize that many further combinations and permutations are possible. Therefore, the novel architecture is intended to include all such changes, modifications, and variations falling within the spirit and scope of the appended claims.
[0196] The foregoing description of exemplary embodiments has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit this disclosure to the precise form disclosed. Many modifications and variations are possible according to this disclosure. The scope of this disclosure is not limited by this detailed description but by the appended claims. Future applications claiming priority to this application may claim the disclosed subject matter in different ways and may generally include any set of one or more limitations as disclosed herein or otherwise demonstrated.Instruction manual page 29 / 29, page 32, CN 121511444 A, Figure 1; Instruction manual figure 1 / 14, page 33, CN 121511444 A, Figure 2A; Instruction manual figure 2 / 14, page 34, CN 121511444 A, Figure 2B; Instruction manual figure 3 / 14, page 35, CN 121511444 A, Figure 3; Instruction manual figure 4 / 14, page 36, CN 121511444 A, Figure 4; Instruction manual figure 5 / 14, page 37, CN 121511444 A, Figure 5; Instruction manual figure 6 / 14, page 38, CN 121511444 A, Figure 7A; Instruction manual figure 7 / 14, page 39, CN 121511444 A, Figure 7B; Instruction manual figure 8 / 14, page 40, CN 121511444 A, Figure 8; Instruction manual figure 9 / 14, page 41, CN 121511444 A, Figure 9. Figure 10 of the instruction manual, page 42, CN 121511444 A; Figure 11 of the instruction manual, page 43, CN 121511444 A; Figure 12 of the instruction manual, page 44, CN 121511444 A; Figure 13 of the instruction manual, page 45, CN 121511444 A; Figure 14 of the instruction manual, page 46, CN 121511444 A.
Claims
1. A computer implementation method for enabling self-service printing using authentication, the computer implementation method comprising: The server receives a print request for a document associated with an account, the print request being received from a computing device; The server adds a print job for the document in the print queue associated with the account; The server receives a second request to print a document associated with the account, the second request being received from the printer; as well as The server releases the print queue associated with the account, causing the printer to print the document, the release being in response to the second request being authenticated.
2. The computer implementation method according to claim 1, wherein, The authentication of the print request by the computing device includes a first authentication routine, and the authentication of the second request by the printer includes a second authentication routine.
3. The computer implementation method according to claim 2, wherein, The first authentication routine is based on settings stored in the computing device.
4. The computer implementation method according to claim 2, wherein, The first authentication routine is based on a contactless card.
5. The computer-implemented method according to claim 4, wherein, The second authentication routine is based on the contactless card and the computing device.
6. The computer implementation method according to claim 2, wherein, The second authentication routine is based on a contactless card.
7. The computer implementation method of claim 1 further includes, in response to receiving the print request to print the document, the server suggesting one or more printers to print the document.
8. The computer implementation method according to claim 7, wherein, One or more printers may be recommended based on the type of the document.
9. The computer implementation method according to claim 1, wherein, Releasing the print queue includes the server verifying that the printer is authorized to print the document based on the document's type.
10. A computer implementation method for enabling self-service printing using authentication, the computer implementation method comprising: The computing device selects the document associated with the account for printing; The computing device generates a list of printers for printing the document, the list being generated based on the type of the document; The computing device selects a printer from the list to print the document; as well as In response to the printer being accessed to print the document, the computing device provides an authentication code that causes the printer to print the document.
11. The computer implementation method according to claim 10, wherein, The list is further generated based on the location of the computing device.
12. The computer implementation method according to claim 10, wherein, The document is a plurality of documents, and the printer list is generated based on the type of a first document from the plurality of documents.
13. The computer implementation method according to claim 10, wherein, The document type is at least one of the following: report, account statement, transaction history, check, fund transfer instruction, form, letter, offer, and combination thereof.
14. The computer implementation method according to claim 10, wherein, The authentication code is provided as a machine-readable code for scanning by the printer.
15. The computer-implemented method according to claim 10, wherein, The authentication code is received by the computing device from the server in response to contactless card-based authentication performed by the computing device.
16. A computing device, comprising: processor; as well as A memory for storing instructions that, when executed by the processor, configure the computing device to: Receive a first request to print a document associated with an account, the first request being received from a computing device; Add a print job for the document to the print queue associated with the account; Receive a second request to initiate the printing of a document associated with the document, the second request being received from the printer; as well as Release the print queue associated with the account so that the printer prints the document, the release being in response to the second request being authenticated.
17. The computing device according to claim 16, wherein, The computing device uses a first authentication routine to authenticate the first request, and the printer uses a second authentication routine to authenticate the second request.
18. The computing device according to claim 16, wherein, The second request is authenticated using a contactless card and the computing device.
19. The computing device according to claim 16, wherein, The second request is authenticated using a contactless card and the printer.
20. The computing device according to claim 16, wherein, In response to verifying that the printer is authorized to print the document, the print queue is released.