Patent ID: 12206765

DETAILED DESCRIPTION

As noted in the background, authentication technology can verify the asserted or indicated identity of a payload. Authentication may be performed after fulfillment. For example, in the case of a physical object, authentication may not be performed until the party seeking to verify that the object is what it has been purported to be has physical access if not possession of the object. Such a party may thus be unable to verify that the object is not counterfeit until the party receives physical access to the object after payload fulfillment has been completed. Many authentication technologies, however, are predicated on such physical access. For example, a user has to have physical access to an object to leverage anti-counterfeiting technologies that pertain to the packaging or labeling of the object.

Techniques described herein, by comparison, provide for payload authentication prior to completing payload fulfillment. A client device can receive from a fulfillment device a unique fulfillment identifier associated with payload fulfillment, and by which authentication of a payload can occur. The fulfillment device can generate the unique fulfillment identifier based on a unique payload identifier of the specific payload in question, as well as on a unique group identifier of a group of payloads including the specific payload.

The client device can then transmit the unique fulfillment identifier to an authentication device to authenticate the unique payload identifier of the specific payload, and thus to authenticate the payload itself. The authentication device, upon successfully authenticating the unique payload identifier, transmits an indication of such successful authentication back to the client device. At that time, the client device may complete fulfillment of the payload at the fulfillment device.

The techniques described herein can thus provide for payload authentication after initiation of payload fulfillment but prior to completion of such fulfillment. Once the fulfillment device has identified the specific payload that will be used to complete payload fulfillment, the fulfillment device can at that time determine the unique payload identifier of this payload as well as the unique group identifier of the group of payloads including the specific payload. As such, once the fulfillment device has identified the specific payload, the fulfillment device can generate the unique fulfillment identifier associated with the payload fulfillment.

Because payload authentication occurs prior to completion of payload fulfillment, the party (e.g., a user) of the client device can verify in the case in which the payload is a physical object that the specific payload is authentic (viz., not counterfeit) prior to having physical access to the object. Once payload fulfillment occurs and the party has physical access to the object, the party then may just have to verify that the unique payload identifier of the object is the same unique payload identifier that the fulfillment device used to generate the unique fulfillment identifier. The techniques describe herein can thus provide for anti-counterfeiting technology that does not rely on the packaging or labeling of the object.

FIG.1shows an example system100for payload authentication prior to completion of payload fulfillment. The system100includes an authentication device102, a fulfillment device104, and a client device106. The devices102,104, and106may be communicatively connected over a network, such as wired and wireless networks, intranets, extranets, the Internet, and so on. The devices102,104, and106can each be a computing device. For example, the authentication and fulfillment devices102and104may be servers, whereas the client device106may be a desktop or laptop computer, tablet, smartphone, or other computing device, including a peripheral device such as a printer.

The devices102,104, and106may be operated by or for different parties, such as users or entities. For example, the authentication device102may be operated by or for the party that provides, creates, fabricates, generates, or manufactures payloads. By comparison, the fulfillment device104may be operated by or for the party that fulfills the payloads for end users. The client device106may thus be operated by or for an end user of a payload that the party of the authentication device102generates and that the party of the fulfillment device104fulfills.

An overview of an example payload fulfillment process is now described in relation toFIG.1. More detailed aspects of this process are then described with subsequent reference toFIGS.2,3, and4. Prior to initiation of payload fulfillment, the authentication device102transmits payload identifiers110and a payload group identifier112to the fulfillment device104, per arrow108A.

The payload identifiers110are payload identifiers of payloads. Each payload identifier110is unique among the payload identifiers of the payloads of a given type. The group identifier112is a payload group identifier of the group of payloads having the payload identifiers110. The group identifier112is unique among payload group identifiers of groups of payloads of a given type.

The client device106transmits a request for payload fulfillment initiation114to the fulfillment device104, per arrow108B. Requesting payload fulfillment initiation114means that the client device106is requesting that the fulfillment device104fulfill a payload of a given type on behalf of the client device106. However, the specific payload on which basis payload fulfillment will actually be completed is not identified by the client device106, or otherwise at the time of payload fulfillment initiation114.

Rather, after payload fulfillment initiation114has been requested, the fulfillment device104selects or identifies the specific payload on which basis completion of payload fulfillment will occur. At this time, the fulfillment device104can determine the unique payload identifier of the selected specific payload, and the unique group identifier of the group of payloads including this payload. The fulfillment device104generates and transmits to the client device106a unique fulfillment identifier116, per arrow108C.

The unique fulfillment identifier116is associated with the payload fulfillment that the client device106has initiated, and is further with respect to the specific payload that the fulfillment device104has selected to complete the payload fulfillment. The unique fulfillment identifier116is unique among fulfillments of payloads of a given type. The fulfillment device104generates the unique payload identifier based on the unique payload identifier of the specific payload and on the unique group identifier of the group of payloads including this payload.

Upon receipt of the unique fulfillment identifier116, and prior to payload fulfillment completion, the client device106can transmit the received fulfillment identifier116to the authentication device102for authentication of the unique payload identifier of the specific payload in question, per arrow108D. The authentication device102authenticates the unique payload identifier, and thus the specific payload itself, based on the payload fulfillment identification116that it receives from the client device106. For example, the authentication device102can determine from the unique fulfillment identifier116the unique payload identifier of the specific payload and the unique group identifier of the group of payloads including this payload, and authenticate the unique payload identifier using the unique group identifier.

The authentication device102transmits an indication of the unique payload identifier authentication118to the client device106, per arrow108E. For instance, the authentication device102can notify the client device106whether authentication was successful or unsuccessful. If authentication was successful, the client device106may then transmit a request to the fulfillment device104to process payload fulfillment completion120, per arrow108F. The fulfillment device104therefore completes payload fulfillment with respect to the specific payload after the client device106has approved authentication of this payload. That is, authentication of the unique payload identifier of this specific payload, and thus of the payload itself, occurs prior to payload fulfillment completion120.

FIG.2shows an example method200performed by the authentication device102and the fulfillment device104prior to the client device106initiating payload fulfillment. The authentication device102performs the parts of the method200in the left column and the fulfillment device104performs the parts of the method200in the right column. The method200can be implemented as program code stored on a non-transitory computer-readable data storage medium and executed by a processor of a computing device like the device102or104.

The authentication device102generates a unique payload identifier for each payload within a group of payloads (202). The payloads may be of a given type. For example, the group of payloads may be a group of physical objects, such as a specific lot of printing device consumable items of the same type, like inkjet or toner cartridges of the same color. The unique payload identifiers in such an example may be the serial numbers of the physical objects.

More specifically, for instance, the party of the authentication device102may be the manufacturer or supplier of the physical objects. A manufacturer may generate the unique payload identifiers, such as unique serial numbers, at the time the physical objects are manufacturer or packaged. A supplier may generate the unique payload identifiers by receiving specification of the identifiers at the time of ordering or receipt of the objects from the manufacturer.

The authentication device102also generates and stores an asymmetric cryptographic public-private key pair for the group of payloads (204). The key pair includes a public key and a private key. The unique group identifier of the group of payloads may be the public key. The authentication device102maintains confidentiality of the private key, and may not share the private key with the computing device of another party, such as the party of the fulfillment device104.

The party of the fulfillment device104may be a reseller of physical objects supplied or manufactured by the party of the authentication device102. The reseller may order one or multiple lots of the physical objects from the manufacturer or supplier, and then stock the physical objects of the same or different lots at different warehouses at different geographic locations for resale. The authentication device102may generate the public-private key pair at the time the reseller places an order for a lot of the objects.

The authentication device102encrypts the payload identifiers of the group using the private key, and stores the encrypted payload identifiers within a database at the authentication device (206). The authentication device102may also encrypt and store other information regarding the payload identifiers. For example, such information can include the identity of the reseller that ordered the corresponding group of physical objects. As another example, the information can specify, for each payload identifier, that the respective physical object has not yet been (re)sold to an end user, and in the case of a printing device consumable item, that the object has not yet been installed within a printing device.

The authentication device102transmits the payloads of the group to the fulfillment device104(208), which responsively receives the payloads (210). For example, in the case of a group of physical objects, the authentication device102can initiate shipping of the physical objects to one warehouse or to multiple warehouses of the reseller of the fulfillment device104, as specified by the reseller. As another example, the authentication device102can provide an indication as to which physical objects have been shipped to which warehouses of the reseller. The fulfillment device104thus receives the payloads in that it may receive indication of such shipment from the authentication device102, including shipment tracking numbers.

The authentication device102further transmits the generated public key, as the unique group identifier of the group of payloads, and the payload identifiers in unencrypted (e.g., plaintext) form to the fulfillment device104(212). The fulfillment device104responsively receives and stores the unique group identifier and the payload identifiers (214). As noted above, the fulfillment device104does not receive the private key, which remains confidential to the authentication device102or to at least the party of the device102.

FIG.3shows an example method300performed by the client device106and the fulfillment device104for payload fulfillment, from fulfillment initiation to fulfillment completion. The client device106performs the parts of the method300in the left column, and the fulfillment device104performs the parts of the method300in the right column. The method300can be implemented as program code stored on a non-transitory computer-readable data storage medium and executed by a processor of a computing device like the device106or104.

The client device106transmits a request to initiate fulfillment of a payload of a given type to the fulfillment device104(302). For example, the payload may be a physical object of the given type, and which a reseller operating the fulfillment device104has stocked in multiple warehouses at different geographic locations. The user of the client device106may thus be an end user or party that is purchasing the object from the reseller. For instance, the client device106may be running a web browser accessing a web site of the reseller hosted by the fulfillment device104, or may be running an app provided by the reseller and which accesses the device104.

In such an example, payload fulfillment can mean the ordering process that the end user performs at the client device106in conjunction with the fulfillment device104of the reseller. Payload fulfillment may be initiated when the end user first virtually places the physical object of the given type (e.g., a particular model of printing device consumable item in a specific color) within a virtual shopping cart. Payload fulfillment may be completed when the end user completes the order, such as when payment of the order has been successfully processed by the fulfillment device104.

After receiving the request to initiate payload fulfillment, the fulfillment device104selects the specific payload of the given type by which fulfillment will be completed (304). For example, the end user may have specified a given type of physical object that is stocked at multiple warehouses of the reseller of the fulfillment device104. In such instance, the fulfillment device104does not select (i.e., allocate or reserve) the actual physical object until the device104has received the shipping address to which the object is to be sent. Once the fulfillment device104has received the shipping address from the client device106, the device104can then select (i.e., allocate or reserve) a specific physical object of the given type from the warehouse geographically closest to this address, for instance.

Once the specific payload on which basis payload fulfillment will be completed has been selected, the fulfillment device104can determine the unique payload identifier of the selected payload (306). The unique payload identifier may be determined at the same time the specific payload is itself selected, including as part of the selection process. For example, the unique payload identifier may be the serial number of the actual physical object that will be sent to the shipping address to fulfill the order initiated at the client device106.

The fulfillment device104further determines the public key of the group of payloads including the specific payload (307). The public key in this implementation is the unique group identifier of the group of payloads including the specific payload. As noted above, the fulfillment device104previously received the public key from the authentication device102inFIG.2.

The fulfillment device104then generates a unique fulfillment identifier based on the payload identifier of the specific payload and the public key of the group of payloads including the specific payload (308). As one example, the fulfillment device104may generate a hash by inputting the payload identifier and the public key into a two-way (viz., reversible) hash algorithm. As another example, the fulfillment device104may concatenate or otherwise combine the payload identifier and the public key.

The fulfillment device104transmits the generated unique fulfillment identifier to the client device (310). The fulfillment device104may transmit the unique fulfillment identifier in textual or graphical form. As an example of the former, the fulfillment device104may transmit a series of alphanumeric digits that constitute the unique fulfillment identifier. As an example of the latter, the fulfillment device104may transmit an image, such as a two-dimensional barcode like a Quick Response (QR) code that encodes the unique fulfillment identifier.

The client device106responsively receives the unique fulfillment identifier (312), and authenticates the specific payload at the authentication device102using this identifier (314). For example, the client device106may provide the unique fulfillment identifier in textual form to the authentication device102at an authentication web site hosted by the device102. As another example, the client device106may capture a digital image of the unique fulfillment identifier in graphical form, which causes the client device106to access the web site and automatically provide the fulfillment identifier to the authentication device102.

How the client device106authenticates the specific payload at the authentication device102is described later in the detailed description with reference toFIG.4. If authentication is successful (316), then the client device106can approve payload fulfillment completion (318), with the fulfillment device104responsively processing such completion (320). By comparison, if authentication is unsuccessful (316), then the client device106may instead terminate payload fulfillment completion (322), such that the fulfillment device104does not complete fulfillment.

For example, as noted above, payload fulfillment may pertain to the ordering of a physical object of a given type by an end user of the client device106from the reseller of the fulfillment device104. If authentication is successful, the client device106may thus transmit a request to the fulfillment device104to process payment for the order of the specific physical object having the unique payload identifier that has been successfully authenticated. By comparison, if authentication is unsuccessful, the client device106may not complete or finish the order.

In the method300, then, payload authentication occurs prior to completion of payload fulfillment. This means, for instance, that in the case in which payload fulfillment pertains to an end user ordering a physical object of a given type from a reseller, the end user is able to verify that the object that is to be shipped is not counterfeit, prior to the user completing the order. Authentication in this instance further does not rely upon physical access to the object. The user is able to verify authenticity of the physical object even before the reseller ships the object to the user.

In this example, the user may just have to verify that the unique payload identifier of the physical object, such as the object's unique serial number, matches the payload identifier on which basis authentication was performed, when the user receives the object from the reseller. The fulfillment device104may provide this information to the client device106with the unique fulfillment identifier, or the authentication device102may provide the information to the client device106as decoded from the unique fulfillment identifier. Additional authentication may also be performed once the physical object has been received, such as by the printing device in which the object is installed in the case of a printing device consumable item.

As part of the payload fulfillment completion process of part320, the fulfillment device104may transmit to the authentication device102information concerning completion of payload fulfillment. For example, the fulfillment device104may notify the authentication device102that the physical object has been sold, and may further provide the authentication device102partial or complete information regarding the shipping address of the end user of the client device106or the intended end use location of the object as provided by the end user. The authentication device102may also use this information when authenticating the physical object.

FIG.4shows an example method400performed by the client device106and the authentication device102to authenticate a specific payload. The client device106performs the parts of the method400in the left column, and the authentication device102performs the parts of the method400in the right column. The method400can be implemented as program code stored on a non-transitory computer-readable data storage medium and executed by a processor of a computing device like the device106or102. The method400can be performed to realize part314ofFIG.3.

The client device106transmits a unique fulfillment identifier, which the device106previously received from the fulfillment device104, to the authentication device102(402). Upon receiving the unique fulfillment identifier (404), the authentication device102determines the public key and the unique payload identifier on which basis the unique fulfillment identifier was generated (406). For example, the authentication device102may decode the public key and the unique payload identifier from the unique fulfillment identifier, such as by inputting the unique fulfillment identifier to the two-way (viz., reversible) has algorithm used to generate the unique fulfillment identifier.

Using the previously stored private key corresponding to the decoded public key, the authentication device102decrypts the payload identifiers that were previously encrypted with this private key (408). The authentication device102thus retrieves the previously stored private key that corresponds to the decoded public key, as well as the payload identifiers that were encrypted using this private key as previously stored within a database, before proceeding to decrypt the payload identifiers. The decrypted payload identifiers are for the payloads of the group corresponding to the public key.

To authenticate the unique payload identifier decoded from the unique fulfillment identifier—and thus to authenticate the specific payload having this payload identifier—the authentication device102determines whether the decoded unique payload identifier is one of the decrypted payload identifiers (410). If the unique payload identifier of the specific payload is present within the decrypted payload identifiers (412), then authentication may be considered successful. The authentication device102therefore accordingly transmits an indication to the client device106that authentication based on the unique fulfillment identifier was successful (414).

However, if the unique payload identifier of the specific payload is absent from the decrypted payload identifiers (412), then authentication is unsuccessful. The authentication device102accordingly transmits an indication to the client device106that authentication based on the unique fulfillment identifier was unsuccessful (416). In either case, the client device106receives indication as to whether such authentication succeeded or not (418).

The authentication device102may perform other checks or verifications during authentication in part410. For example, in the case of a specific physical object that is being ordered, the authentication device102may confirm that the object has not already been indicated as having been sold. In the even more particular case of a printing device consumable item, the authentication device102may verify that the item has been installed in a printing device at a suitable geographic location when authentication is performed by the printing device upon installation. This type of verification can confirm, for instance, that the consumable item has not been sold or is being used in an unapproved market, as a gray market good.

FIG.5shows an example computing device500. The computing device500can implement the fulfillment device104that has been described. The computing device500includes network hardware502, a processor504, and a non-transitory computer-readable data storage medium506storing program code508. The network hardware502may be a wired or wireless network adapter or chipset, for instance, to communicatively connect to a client device at which payload fulfillment has been initiated, as well as to an authentication device.

The processor504executes the program code508to perform processing. The processing includes generating, after initiation and prior to completion of the payload fulfillment, a unique fulfillment identifier by which authentication of the specific payload can occur (510). The unique fulfillment identifier can be generated based on a unique payload identifier of a specific payload and a unique group identifier of a group of payloads including the specific payload.

The processing that the processor504performs by executing the program code508can further include transmitting the unique fulfillment identifier to the client device (512). The processing that the processor504performs can include receiving approval of authentication of the specific payload from the client device based on the unique fulfillment identifier (514). The processing can include processing the completion of the payload fulfillment (516).

FIG.6shows an example non-transitory computer-readable data storage medium600storing program code602executable by an authentication device to perform processing. The processing includes receiving, from a client device, a unique fulfillment identifier corresponding to a unique payload identifier of a specific payload and a unique group identifier of a group of payloads including the specific payload, prior to completion of payload fulfillment (604). The processing includes authenticating the unique payload identifier based on the unique group identifier (606), and in response to successfully authenticating the unique payload identifier based on the unique group identifier, transmitting an indication of successful authentication of the payload to the client device (608).

FIG.7shows an example method700. The method700includes receiving, by a client device from a fulfillment device, a unique fulfillment identifier corresponding to a unique payload identifier of a specific payload and a unique group identifier of a group of payloads including the specific payload, prior to completion of payload fulfillment (702). The method700includes sending, by the client device to an authentication device, the unique fulfillment identifier to authenticate the specific payload (704). The method700includes, in response to receiving an indication of successful authentication of the specific payload from the authentication device, transmitting, by the client device, approval of the authentication of the specific payload to the fulfillment device (706), with the fulfillment device responsively processing the completion of the payload fulfillment.

Payload authentication techniques have been described herein. The described techniques provide for payload authentication after initiation and prior to completion of payload fulfillment. In the case of a payload that is a physical object, the physical object can thus be authenticated without there being physical access or possession to the object.