System and Method for Generating Postage
20220188834 ยท 2022-06-16
Assignee
Inventors
- Frederick W. Ryan, Jr. (Oxford, CT)
- Tarunya Goel (Brooklyn, NY, US)
- Paresh Sahasrabudhe (North York, CA)
- William Rodriguez (Stratford, CT, US)
- Chintapalli S. Reddy (Trumbull, CT, US)
- Henry Rogando (S. Arlington, VA, US)
Cpc classification
G07B2017/00427
PHYSICS
G07B2017/00967
PHYSICS
G06Q20/389
PHYSICS
G07B17/00733
PHYSICS
G07B2017/00064
PHYSICS
G07B17/00314
PHYSICS
G06Q20/42
PHYSICS
International classification
G06Q20/42
PHYSICS
Abstract
A postage generating system and method that allows for the generation of postage without the use of a PSD, while still maintaining the necessary data integrity and non-repudiation aspects. The cryptographic and accounting functions are performed separately when an indicium is generated and reconciled to ensure that every transaction is properly accounted for and funds are deducted from the user's account. The cryptographic functions for an indicium are performed utilizing a cloud-based Hardware Security Module (HSM). Transaction records for indicium generated by an HSM are stored in a database. The accounting is performed by a transaction server, separate and remote from the HSM, to make updates to the client's account to account for generated indicia. An Integrity Monitor Server monitors the consistency of the transactions, i.e., that every transaction performed by an HSM is properly accounted for by the transaction server and funds are deducted from the user's account.
Claims
1. A method for generating an indicium that evidences payment of postage, the method comprising: receiving at a first server a request to generate the indicium from a shipper; retrieving, by the first server, an account associated with the shipper from a database maintained by a second server; generating, by the first server, an indicium data record for the requested indicium, and sending at least a portion of the indicium data record to a third server; performing, by the third server, cryptographic operations one or more parts of the at least a portion of the indicum data record to generate the indicium, the cryptographic operations not including any accounting functions to account for the indicium in the account associated with the shipper; sending, by the third server to the first server, the generated indicium, and sending, by the third server to a fourth server, a transaction log for the generated indicium; storing, by the fourth server, the transaction log in a transaction database maintained by the fourth server; updating by the first server, the account associated with the shipper based on the generated indicium received from the third server, and sending the updated account to the second server; sending, by the second server, an account transaction log to the fourth server; determining, by the fourth server, if there is a transaction log stored in the transaction database that corresponds to the account transaction log received from the second server; if it is determined by the fourth server that there is a transaction log stored in the transaction database that corresponds to the account transaction log received from the second server, removing the transaction log stored in the transaction database that corresponds to the account transaction log received from the second server; and if it is determined by the fourth server that there is not a transaction log stored in the transaction database that corresponds to the account transaction log received from the second server, performing a mismatched transaction error process for the account associated with the shipper.
2. The method of claim 1, wherein the mismatched transaction error process further comprises preventing any further indicia from being generated using the account associated with the shipper.
3. The method of claim 1, wherein if it is determined by the fourth server that there is a transaction log stored in the transaction database that corresponds to the account transaction log received from the second server, the method further comprises: comparing data contained in the transaction log stored in the transaction database with data contained in the account transaction log received from the second server; removing the transaction log stored in the transaction database if the data contained in the transaction log stored in the transaction database matches the data contained in the account transaction log received from the second server; and performing the mismatched transaction error process for the account associated with the shipper if the data contained in the transaction log stored in the transaction database does not match the data contained in the account transaction log received from the second server.
4. The method of claim 1, further comprising: locking, by the second server, the account associated with the shipper after the account has been retrieved by the first server such that no modifications to data in the account can be made; unlocking, by the second server, the account associated with the shipper when the updated account is received from the first server; and updating the account associated with the shipper that is stored in the database maintained by the second server.
5. The method of claim 4, wherein updating the account associated with the shipper that is stored in the database maintained by the second server includes updating register values for a value of postage used for the indicium to account for the indicium in the account associated with the shipper.
6. The method of claim 1, wherein performing cryptographic operations further comprises: generating a digital signature or message authentication code using one or more cryptographic keys.
7. The method of claim 1, further comprising: periodically monitoring, by the fourth server, the transaction database to identify any transaction logs stored in the transaction database that are older than a predetermined threshold time period; and performing the mismatched transaction error process for the account associated with the shipper for any user accounts for which there are transaction logs stored in the transaction database that are older than the predetermined threshold time period.
8. The method of claim 7, further comprising: extracting, by the fourth server, the transaction logs stored in the transaction database that are older than the predetermined threshold time period.
9. The method according to claim 7, wherein the predetermined threshold time period is in the range of approximately 3 seconds to 120 seconds.
10. A method to validate that funds for postage value used to generate a postage indicium have been accounted for in a postage account, the method comprising: receiving, at a first server, a transaction log from a second server for an indicium generated for the postage account, the indicium being generated using cryptographic operations performed by a cryptographic device associated with the second server that is remote from the first server, the cryptographic operations not including any updating of the postage account to account for funds used to generate the indicium; storing, by the first server, the transaction log in a transaction database maintained by the first server; receiving, at the first server, an account transaction log for the postage account from a third server, the third server being remote from the first and second servers, the account transaction log including an update to data stored in the postage account to account for funds used to generate the indicium; determining, by the first server, if there is a transaction log stored in the transaction database that corresponds to the account transaction log received from the third server; if it is determined by the first server that there is a transaction log stored in the transaction database that corresponds to the account transaction log received from the third, removing the transaction log stored in the transaction database that corresponds to the account transaction log received from the third server; and if it is determined by the first server that there is not a transaction log stored in the transaction database that corresponds to the account transaction log received from the third server, performing a mismatched transaction error process for the postage account.
11. The method of claim 10, wherein performing a mismatched transaction error process further comprises preventing any further indicia from being generated using the postage account.
12. The method of claim 10, wherein if it is determined by the first server that there is a transaction log stored in the transaction database that corresponds to the account transaction log received from the third server, the method further comprises: comparing data contained in the transaction log stored in the transaction database with data contained in the account transaction log received from the third server; removing the transaction log stored in the transaction database if the data contained in the transaction log stored in the transaction database matches the data contained in the account transaction log received from the second server; and performing the mismatched transaction error process to prevent any further indicia from being generated using the postage account if the data contained in the transaction log stored in the transaction database does not match the data contained in the account transaction log received from the third server.
13. The method of claim 10, further comprising: periodically monitoring, by the first server, the transaction database to identify any transaction logs stored in the transaction database that are older than a predetermined threshold time period; and performing the mismatched transaction error process to prevent any further indicia from being generated using the postage account if there are transaction logs stored in the transaction database that are older than the predetermined threshold time period.
14. The method of claim 13, further comprising: extracting, by the first server, the transaction logs stored in the transaction database that are older than the predetermined threshold time period.
15. The method according to claim 13, wherein the predetermined threshold time period is in the range of approximately 3 seconds to 120 seconds.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The accompanying drawings illustrate presently preferred embodiments of the invention, and together with the general description given above and the detailed description given below, by way of example serve to explain the invention in more detail. As shown throughout the drawings, like reference numerals designate like or corresponding parts.
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
DETAILED DESCRIPTION
[0019] In describing the present invention, reference is made to the drawings, wherein there is seen in
[0020] The postage generating service is a cloud computing-based service which performs the traditional metering functions of funds accounting and cryptography. It consists of an Next Generation Postage (NGP) server 12 that coordinates operation of the system 10, a transaction server 20 that is coupled with and maintains a database 22 having an immutable transaction ledger, an integrity monitor server 40 having a transaction store database 42, and one or more FIPS 140-2 level 3 certified Cloud Hardware Security Modules (HSM's) 32 controlled by a Cloud HSM Server 30. Alternatively, the functions of the Cloud HSM 32 could be performed using a cryptographic software library. Cloud HSM's 32 could be, for example, the AWS CloudHSM offered by Amazon Web Services. Unlike conventional PSD's, the HSM's 32 are not dedicated to only a single postage customer, and do not need to be owned by the postage provider, operated by the postage provider, or registered by a post to the postage provider and shared among clients. The Cloud HSM Server 30 provides cryptographic key management and cryptographic operations, and is coupled with a logs database 34 to store records of activity. The immutable transaction ledger in database 22 maintains a cryptographic hash chain of every postage credit and debit transaction, similar to a blockchain. This ensures that transactions cannot be modified or deleted without detection. Thus, key features of the ledger preferably include an append-only functionality, and an immutable, document-based database in which documents are organized in a Merkel Tree using a SHA-256 hash. APIs are provided to verify proof of any document revision against the digest of a maintained journal of activity. The ledger of database 22 is preferably a quasi-blockchain type of ledger, where centralized trust avoids a multiple party consensus and does not incentivize participants to make fraudulent changes. There is no risk of phantom or dirty reads, and a data stream is provided in real time, using for example, a managed, scalable, cloud-based service that allows real-time processing of streaming large amounts of data per second, such as, for example, Amazon Kinesis. In addition, data is encrypted at rest using a standard key management service.
[0021] Each transaction record/journal stored in the ledger of database 22 preferably includes at least a meter serial number, the ascending register value, the descending register value, a piece count, and the transaction contents or reference number, e.g., the indicium data and signature, a refill/add funds/PVD transaction data and signature, a financial reference number (CH trace number, Credit Card transaction ID/confirmation number, etc.), and for short pay adjustment requests from a Post a debit transaction record and signature.
[0022] The NGP Server 12 coordinates the crediting and debiting of funds, cryptographic operations, recording of transactions in the immutable ledger of database 22 and creation of postal reports. The Hardware Security Modules 32 secure the keys associated with each device/client and perform the cryptographic operations necessary to request postage refills and create indicia.
[0023] Referring now to
[0024] Referring now to
[0025] In step 80, the HSM 32 performs the necessary cryptographic functions to generate a digital signature/HMAC (hashed-based message authentication code) for the specific transaction, including the key record, the indicium data, and any other data deemed necessary. Also in step 80, the signed/HMAC'ed indicium is returned to the NGP Server 12 for delivery to the requesting merchant for use. The signature/HMAC can now be used to verify the data integrity and the authenticity of the message (postage indicium), thereby providing evidence that postage was paid. It is important to note that the accounting for the postage, i.e., adjusting the register values, is not performed by the HSM 32, as compared with the prior art postage generating systems where the cryptographic functions and accounting are all performed within the same device, e.g., a PSD. In step 82, the transaction log from the transaction just completed is sent from the Cloud HSM Server 30 to the Integrity Monitor Server 40, and the signed/HMAC'ed indicium is sent to the NGP Server 12. In step 84, upon receiving the signed/HMAC'ed indicium from the Cloud HSM Server 30, the NGP Server 12 updates the account data for the merchant's account, including the register values, piece count, etc., and sends the updated account information to the Transaction Server 20. In step 86, the Transaction Server 20 unlocks the account (it was locked in step 72 above) in database 22, and updates the now unlocked account to include the transaction data from this transaction. Updating the account data includes writing all updated register values and a copy of the indicium transaction, including the signature/HMAC, to the account that is stored in database 22. Thus, it is at this point that the accounting is actually performed, and the register values are actually updated to account for the postage value used for the indicium. A response is sent to the NGP Server 12 indicating a successful update. In step 88, the Transaction Server 20 sends the transaction data to the Integrity Monitor Server 40. To ensure that all transaction are properly accounted for, i.e., for every indicium generated by the Cloud HSM Server 30 there is a corresponding accounting performed by the Transaction Server 20, in step 90 the Integrity Monitor Server 40 checks for consistency of transactions using the transaction logs received from the Cloud HSM Server 30 in step 82 and the transaction data received from the Transaction Server 20 in step 88 as further described below with respect to
[0026] In accordance with embodiments of the present invention, the Integrity Monitor Server 40 provides the necessary monitoring and security to ensure that every transaction, e.g., creation of an indicium, is properly accounted for and funds are deducted from the user's account.
[0027] In step 100, the Integrity Monitor Server 40 receives transaction data in the form of a transaction record from the HSM Cloud Server 30 (refer to step 82 of
[0028] Upon receipt of a mismatched transaction error, in step 120, one or more of several mismatched transaction error processing actions can be performed by one or more of the NGP Server 12, the Transaction Server 20 and/or the Cloud HSM Server 30. In accordance with some embodiments, the account serial number for the mismatched transactions can be added to a Certificate Revocation List (CRL), thereby preventing any further indicia from being generated for that account as the Cloud HSM Server will not allow an HSM 32 to generate digital signatures for any account that is on the CRL. In accordance with some embodiments, the NGP Server 12 can disable any further debiting of the account by the Transaction Server 20 (such as, for example, by locking the account). In accordance with some embodiments, access to the cryptographic keys associated with that account serial number can be disabled by the Cloud HSM Server, thereby preventing any further indicia from being generated for that account. In accordance with some embodiments, operations staff of system 10 could be notified, and the account remain in an active state until further mismatched transactions are encountered.
[0029] The processing performed in
[0030] The transaction and integrity monitoring flow implementation of the present invention addresses several functional, performance, security, and compliance requirements: (i) Functional requirements and performance: indicia signing transactions are handled in a secured, accountable, but highly performing manner. Performance supporting high volume concurrent traffic is important especially for automated incoming requests. Process flow and operation are optimized (e.g.: minimize locking time and number of operations to data base 22). (ii) Reliability: transaction records that include financial (postage debit) and signing information are reliably entered in an immutable storage like data base 22. This record is annotated with unique transaction/correlation ID for future reconciliation and reference purpose. (iii) Security: NGP services, including the orchestration and supporting microservices, are constructed to mimic the level of security achieved by conventional hardware-based PSDs. Proper machine level authentication and authorization are in place. Additional measures are incorporated to defend against cyber attacks and frauds. (iv) Compliance: the postage generating system 10 of the present invention provides a similar assurance in terms of integrity checks and balances to conventional hardware-based devices, e.g., a PSD, that provides a single, secured environment that guarantees the integrity between proper debits and signing. For example, the transaction flow involves (a) locks of register balance/value, (b) balance and fund level check, (c) secured signing through Cloud HSM, (d) immutable recording of debit and signing information, and (e) release of register locks. Security is provided via the Cloud HSMs 32 and immutable ledger of database 22, as well as access control to the system 10: [0031] The NGP microservices (key management system, ledger) abstracts and prevents direct calls to Cloud HSM Server 30 and data base 2l layers. [0032] The incoming transaction to the Postage Transaction Manager (PTM, orchestration layer) are authenticated. Note that this is related to machine-machine authentication and not user based. [0033] The indicia cannot be returned from the orchestrator to the requestor without proper recording of the transaction in data base 22.
[0034]
[0035]
[0036] Table 1 below shows a comparison of the functions performed by the NGP system 10 of the present invention with a conventional PSD Farm 72.
TABLE-US-00001 TABLE 1 Function PSD Farm NGP Signing/HMAC PSD HSM Cluster Key Asymmetric: PSD Asymmetric: HSM Generation Symmetric: Key Symmetric: HSM Management System (KMS) Key Storage Non Volatile Advanced Encryption Memory (NVM) in Standard (AES) Wrapped in PSD Database Key Availability Private: PSD Private: HSM Cluster Symmetric: PSD & Symmetric: HSM Cluster KMS Key Recovery Asymmetric: None AES Wrapped in Database Symmetric: KMS Key Command, Tamper HSM: Command, Tamper Zeroization AES Wrapped in Database: None Funds Balance NVM in PSD Immutable Database Funds Register PSD NGP Server Modification Transaction PSD Independent real-time Integrity monitoring by Integrity Monitor Server Question of Indicia Creation Full Transaction History Accurate Record/Data (database), GCS Logs Registration Capture History, (QAR) GCS Logs Refill Postage-by-Phone Postage-by-Phone Authorization Remote Remote: PB Remote: PB Infrastructure Inspection Infrastructure NGP: Database, NGP Server, PSD: PSD Cloud HSM
[0037] While preferred embodiments of the invention have been described and illustrated above, it should be understood that they are exemplary of the invention and are not to be considered as limiting. Additions, deletions, substitutions, and other modifications can be made without departing from the spirit or scope of the present invention. Accordingly, the invention is not to be considered as limited by the foregoing description but is only limited by the scope of the appended claims.