View Issue Details

IDProjectCategoryView StatusLast Update
0010044Talerexchangepublic2025-08-31 17:09
ReporterFlorian Dold Assigned ToChristian Grothoff Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PriorityhighSeverityfeatureReproducibilityalways
Status closedResolutionreopened 
Target Version1.0 stretch goalsFixed in Version1.0 stretch goals 
Summary0010044: exchange should honor Account-Owner-Pub signature when checking Account-Owner-Signature
DescriptionThe wallets now send the additional Account-Owner-Pub header.

Instead of just verifying the signature with the target_pub (from the latest KYC auth transfer) and the latest reserve pub, the exchange should check if the Account-Owner-Pub matches any of the past reserve pubs.

The header should be treated as optional for backwards compatibility.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2025-05-28 16:46

manager   ~0025037

Which endpoint is this? GET /kyc-check/? Did you update the spec?

Christian Grothoff

2025-05-28 17:55

manager   ~0025039

Spec expanded in 2358790a..d74c7cc0

Christian Grothoff

2025-05-28 17:59

manager   ~0025040

Fix committed to master branch.

Christian Grothoff

2025-05-28 17:59

manager   ~0025041

I believe a14ef50b7..ed93a77ce should address this, but didn't test -> feedback.

Florian Dold

2025-06-03 18:30

manager   ~0025111

commit cca3196ed9c61d3e3d92dcd18bea7a97d4526948 (HEAD -> master, origin/master, origin/HEAD)
Author: Florian Dold <florian@dold.me>
Date: Tue Jun 3 20:29:55 2025 +0200

    harness: add test for exchange kyc auth
    
    Issue: https://bugs.taler.net/n/10044

Florian Dold

2025-06-03 18:37

manager   ~0025113

According to my tests, only the last known reserve_pub for a given payto URI is accepted by the exchange as Account-Owner-Pub.

Corresponding test:

$ taler-harness run-integrationtests exchange-kyc-auth

The test does quite a few /kyc-check requests, with and without Account-Owner-Pub. One request fails (we get 403 instead of 202), despite the client specifying an "Account-Owner-Pub" that has an incoming wire transfer. I've checked that the corresponding wire transfer is in reserves_in, so wirewatch ingested those transactions.

Christian Grothoff

2025-06-03 21:06

manager   ~0025121

ae9b97a43..6c9a0ce92 removes a bad memset() to zero of the account_pub and cleans up the SQL.
However, the test still fails, but MUCH later, I think its the test...

Florian Dold

2025-06-04 20:21

manager   ~0025135

Eh, looks like the test is simply failing *earlier*, where the test is checking the implicit KYC auth via the last reserve_in (where the client does *not* explicitly specify the Account-Owner-Pub).

Issue History

Date ModifiedUsernameFieldChange
2025-05-28 12:37Florian DoldNew Issue
2025-05-28 12:37Florian DoldStatusnew => assigned
2025-05-28 12:37Florian DoldAssigned To => Christian Grothoff
2025-05-28 16:46Christian GrothoffNote Added: 0025037
2025-05-28 17:55Christian GrothoffNote Added: 0025039
2025-05-28 17:59Christian Grothoff
2025-05-28 17:59Christian GrothoffNote Added: 0025040
2025-05-28 17:59Christian GrothoffStatusassigned => informing
2025-05-28 17:59Christian GrothoffResolutionopen => fixed
2025-05-28 17:59Christian GrothoffNote Added: 0025041
2025-05-28 17:59Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-05-28 17:59Christian GrothoffStatusinforming => feedback
2025-05-28 17:59Christian GrothoffResolutionfixed => reopened
2025-06-03 18:30Florian DoldNote Added: 0025111
2025-06-03 18:37Florian DoldNote Added: 0025113
2025-06-03 18:37Florian DoldAssigned ToFlorian Dold => Christian Grothoff
2025-06-03 18:37Florian DoldStatusfeedback => assigned
2025-06-03 21:06Christian GrothoffNote Added: 0025121
2025-06-03 21:06Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-06-04 20:21Florian DoldNote Added: 0025135
2025-06-04 20:21Florian DoldAssigned ToFlorian Dold => Christian Grothoff
2025-06-04 20:52Christian GrothoffStatusassigned => informing
2025-06-04 20:52Christian GrothoffFixed in Version => 1.0 stretch goals
2025-08-31 17:09Christian GrothoffStatusinforming => closed