MetaMask / metamask-mobile

Mobile web browser providing access to websites that use the Ethereum blockchain
https://metamask.io
Other
2.16k stars 1.11k forks source link

Improve NFT privacy #2733

Open omnat opened 3 years ago

omnat commented 3 years ago

Issue to improve security and privacy regarding the loading of images in Collectibles.

DanF: We should only load NFT images from decentralized/static sources by default, and prompt a user to click "load image from [whatever].[com/net/etc]" before pinging centralized servers for auto-detected NFTs. We should either proxy image requests or “load on click”.

Tweet pointing the issue with NFTs images

Proposed solutions

  1. Improve UX to inform the users about the risk of loading images from centralized servers and giving them the option to opt out in autoloading the images.
  2. Develop an image proxy to protect the user's data and use the UX improvement as a fallback in case the proxy is down.

To consider https://consensys.slack.com/archives/G4V2HTG0Y/p1626891700217800

cjeria commented 3 years ago

This reminds me of the email preference to "ask me before displaying external images". Google actually has developed secure proxy servers to address these security and privacy concerns (pretty interesting if we want to ever aim for security by default and do something similar) See here https://gmail.googleblog.com/2013/12/images-now-showing.html

I've started a Figma file with some of these patterns for us to reference https://www.figma.com/file/T6y4y8nYAH1EyEBMXV8xLw/Improve-NFT-Privacy?node-id=0%3A1

Customization options by the user

1. Autoloading assets off by default (more UX friction, more secure)

2. Turn on autoloading assets from Settings (Smoother UX, less secure)

WDYT? @omnat @gantunesr

gantunesr commented 3 years ago

Research:

  1. Sensitive information shared in NFT request
  2. NFT autodetection
  3. Privacy over multiple NFT from same marketplace
  4. OpenSea privacy
cjeria commented 3 years ago

@gantunesr and I capture some initial (low fidelity) UX approaches for handling this privacy enhancement. See Figma https://www.figma.com/file/T6y4y8nYAH1EyEBMXV8xLw/Improve-NFT-Privacy?node-id=75%3A296

As @gantunesr mentioned above, there's some technical research he's going to do based on our discussion. @omnat your feedback is welcomed.

Adding a screenshot of a potential MVP approach. image.png

mobularay commented 3 years ago

Status update to be expected on July 27 (Slack thread)

gantunesr commented 3 years ago

Check existence of the following components:

1 comp-1.png 2 comp-2.png 3 comp-3.png

UPDATE

Only the first component must be developed before starting this task.

gantunesr commented 3 years ago

Current WIP: feat/nft-privacy/v1