Cold Signing Payment Requests [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2013-05-06T21:29:59+00:00


Summary:

In a series of email exchanges, discussions surrounding the security and functionality of Bitcoin payment protocols are explored. One concern is the potential risks associated with compromised web servers and the need to protect refund addresses. It is suggested that archiving key documentation on archive.org could help ward off potential patent threats in the future. The challenges faced by merchants regarding missed payments and server vulnerabilities are also discussed.The threat of malware-compromised hosts and the potential redirection of payments is another area of concern. The complexities involved in handling errors during payment posting and the need for secure channels to obtain cryptographic identities are examined. Code review and testing for version updates are highlighted as a bottleneck in the development process. Suggestions are made for protecting pay-to addresses in case of web server compromise, such as using different types of certificates and encoding pubKeys or fingerprints.The limitations of SSL PKI and the challenges of obtaining a more trusted payment request signing key than an SSL key are covered. The difficulties in implementing offline intermediate certificates are also discussed. The proposal to sign payment requests with keys kept offline is considered, with debates on the feasibility and effectiveness of chaining custom certificates onto SSL certificates.Another discussion on bitcointalk.org suggests using x509 certificates to sign Payment Requests to enhance verification and prevent address tampering. However, generating live Payment Requests exposes the signing key to potential theft. A solution is proposed involving a two-tier certificate system, where a 'parent' certificate is kept offline and a 'child' certificate is used for live signing. This approach ensures that the payer can verify the address in the payment request belongs to the intended recipient.To implement this solution, the Payment Protocol utilizes x509 certificates to sign payment requests, allowing wallets to display metadata from the certificate. However, the key used to sign these requests is vulnerable to theft. To mitigate this risk, the proposed two-tier certificate system is explained, where the parent certificate is kept offline and the child certificate is used for live signing on the payment server.While this solution offers improved security, there is a need for established conventions to identify which certificate is the 'most trusted' and which is the 'less trusted'. Alternative ideas are needed for better identification. However, if merchants can keep the key used for signing the address offline, several benefits can be gained, such as enhanced verification and protection against address tampering.


Updated on: 2023-08-01T04:43:53.582572+00:00