backend icon indicating copy to clipboard operation
backend copied to clipboard

Node owners can fetch PII for Jumio verified accounts

Open netpro2k opened this issue 4 years ago • 4 comments

Previously the verification info returned from Jumio (ID scans urls, liveness image urls, name, dob, address, etc) was being directly stored in userMetadata as part of the Jumio callback. This was changed in #105 so that the info is no longer being directly stored, but the JumioTransactionID (which appears to be a Jumio scan reference) is still being stored in the userMetadata here: https://github.com/bitclout/backend/blob/07676b2a874d7c37dd3a1bc8f4679f5621b46cbf/routes/verify.go#L805

It seems this Jumio API can be used to fetch this same info given a scan reference and Jumio API secret, both of which the node owners have access to. Is this intentional?

Since it is the node owner providing the funds for this verification bonus (right now not aware of anyone outside of bitclout.com / identity.bitclout.com doing this) I suppose it is within their rights to be able to look up this information, but I would like to hear about if the intent is for this to be a temporary measure to help debugging abuse while this rolls out or something that is intended to stick around long term (for KYC compliance or other reasons). Both seem potentially reasonable, but In either case it seems like this should be called out as part of the verification flow, or at the very least on https://docs.bitclout.com/faq/privacy-and-security so that users are aware of the transaction they are making.

As it stands right now I feel a bit uncomfortable verifying my account without this being addressed, and feel especially uncomfortable about onboarding users and recommending they verify, be it directly on bitclout.com or as part of any app I might build on the network that wishes to take advantage of "gas on the fire" bonus to attract new users.

Also. I considered opening this as a CIP discussion but it seems worth first understanding the intent of what has already been implemented before diving into any specific discussions about changes or alternatives.

netpro2k avatar Aug 29 '21 00:08 netpro2k

This is a great catch. Huge thanks for continuing to research Jumio-specific privacy concerns @netpro2k! I'm sure, as with the metadata changed in #105, this isn't intentional, however, if the Ref. can't be used as a uid, what could be used in it's place that doesn't have the ability to fetch this data?

HPaulson avatar Sep 03 '21 20:09 HPaulson

The transaction ID is not actually used anywhere as far as I can tell apart from storing it. https://github.com/bitclout/backend/search?q=JumioTransactionID

The actual check for duplicate verification uses some other properties from the callback but not the transaction id https://github.com/bitclout/backend/blob/main/routes/verify.go#L795

I previously pointed out that this uniqueJumioKey was using a piece of possibly sensitive information as well (the document id number) but am not really very concerned about that anymore since its not being linked with an account anymore, so it's not particularly meaningful.

netpro2k avatar Sep 03 '21 21:09 netpro2k

With the release of referrals and apparent sharing of global state with diamondapp.com (a third party) this issue seems now even more pressing. I would very much like to onboard people, but really don't feel comfortable doing so without this being addressed.

Again not calling for this info not to be collected necessarily, just to understand why it is being collected and what goes into decisions to share it with other parties such as diamondapp.

netpro2k avatar Oct 15 '21 06:10 netpro2k

See related issue: https://github.com/deso-protocol/backend/issues/177

tijno avatar Oct 15 '21 07:10 tijno