-
Notifications
You must be signed in to change notification settings - Fork 114
WIP: Add page for hide sensitive info #112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Tiana01
wants to merge
24
commits into
BitcoinDesign:master
from
Tiana01:feature/hide-sensitive-info
Closed
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
9f4f085
docs(payments): update images
Tiana01 4207845
Merge branch 'master' into feature/hide-sensitive-info
Tiana01 b45e897
Update hide-sensitive-info.md
Tiana01 1436bf7
docs(payments): update header image
Tiana01 ee03616
Update hide-sensitive-info.md
Tiana01 9ca35d7
Update hide-sensitive-info.md
Tiana01 45397ac
docs(payments): update image sizes and color
Tiana01 730453d
Update hide-sensitive-info.md
Tiana01 dd1180c
Apply suggestions from code review
Tiana01 897ed34
Update guide/payments/hide-sensitive-info.md
Tiana01 2b27aae
Apply suggestions from code review
Tiana01 087d0c0
Update hide-sensitive-info.md
Tiana01 e6b5132
Merge branch 'feature/hide-sensitive-info' of https://github.com/Tian…
Tiana01 b89af04
docs(pyments): update gifs
Tiana01 d56bc0b
docs(payments): update gif and references
Tiana01 c9d28be
docs(payments): update fix typo
Tiana01 a701d58
Update hide-sensitive-info.md
Tiana01 f14aa64
Update hide-sensitive-info.md
Tiana01 a418c9d
Update hide-sensitive-info.md
Tiana01 c1c8459
docs(payments): update gif layout
Tiana01 3b60452
docs(payments): update gif layout
Tiana01 5f0d96d
docs(payments):update gif layout
Tiana01 8babfa7
Update hide-sensitive-info.md
Tiana01 914ab5f
Update hide-sensitive-info.md
Tiana01 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,151 @@ | ||
| --- | ||
| layout: guide | ||
| title: Hide sensitive information | ||
| nav_order: 71 | ||
| has_children: false | ||
| parent: Payments | ||
| permalink: /guide/payments/hide-sensitive-information/ | ||
| main_classes: -no-top-padding | ||
| image: /assets/images/guide/payments/hide-sensitive-information-header.png | ||
|
|
||
| --- | ||
| <!-- | ||
|
|
||
| Editor's notes | ||
|
|
||
| This page provides an overview to a few patterns that can be incorporated by wallets to hide users sensitive information. | ||
|
|
||
| Illustration sources | ||
|
|
||
| - https://www.figma.com/file/TGJ8VxZOQ65In8kCir6eQt/Hide-sensitive-information-illustration?node-id=0%3A1 | ||
| --> | ||
|
|
||
| {% include picture.html | ||
| image = "/assets/images/payments/hide-sensitive-information-header.png" | ||
| retina = "/assets/images/payments/hide-sensitive-information-header.png" | ||
| mobile ="/assets/images/payments/hide-sensitive-information-header.png" | ||
| mobileRetina ="/assets/images/payments/hide-sensitive-information-header.png" | ||
| alt-text = "Payment Privacy & Security" | ||
| caption = 'Person by [DrawKit](https://www.drawkit.io/illustrations/mobile-article-colour){:target="_blank" rel="nofollow"} and trees by [Flaticon](https://www.flaticon.com/free-icon/tree-with-many-leaves_25267){:target="_blank" rel="nofollow"}' | ||
| width = 1600 | ||
| height = 600 | ||
| layout = "full-width" | ||
| %} | ||
|
|
||
| # Hiding Sensitive Information | ||
|
|
||
| Imagine this scenario. You are in a public place, and you need to make a payment using your bitcoin wallet. You open your wallet on your phone, but you don’t feel comfortable having your address and balance information clearly visible to strangers who may be looking over your shoulder, persons lurking or video surveillance . Hence by giving users the ability to hide sensitive information in their wallet if desired, they gain an added sense of physical privacy and security [^3]when using the app in public. | ||
|
|
||
| ## What information is considered sensitive ? | ||
|
|
||
| Sensitive information in wallet applications include the wallet balance, addresses, private keys and previous transactions information. | ||
| - Wallet Balance - shows how much you own | ||
| - Addresses - can be used to track your transaction history | ||
| - Private keys - can be used to access and transfer your bitcoins | ||
|
|
||
| It's more common for wallets to protect private keys but not much is done for other sensitive information like the balance, addresses and previous transactions. A few wallets like Bitcoin Core, Wasabi, Wallet of Satoshi, and others have made it work though. Below describes a pattern, and considerations for hiding and revealing sensitive information. | ||
|
|
||
| ## Quickly hide from overview screen | ||
|
|
||
| The hide icon / button, which is usually displayed within close reach of the balance itself, is used to quickly and easily hide and reveal wallet information by tapping or clicking on it.[^2] | ||
|
|
||
| {% include picture.html | ||
| image = "/assets/images/payments/hide-by-eye-icon.gif" | ||
| retina = "/assets/images/payments/hide-by-eye-icon.gif" | ||
| mobile = "/assets/images/payments/hide-by-eye-icon.gif" | ||
| mobileRetina = "/assets/images/payments/hide-by-eye-icon.gif" | ||
| alt-text = "hide-by-eye icon" | ||
| width = 1600 | ||
| height = 800 | ||
| %} | ||
|
|
||
| #### Pros | ||
|
|
||
| - It is quite convenient to switch between revealed and hidden state | ||
|
|
||
| #### Cons | ||
|
|
||
| - Easy for anyone else to reveal your information if they have access to your device. | ||
|
|
||
|
|
||
| ## Entering a PIN to reveal information | ||
|
|
||
| A problem that seemed to arise throughout each implementation was that it was as easy to reverse the hidden state as it was to enable it. This may be for convenience sake, however, for protection against unauthorized access, perhaps you should only be able to unhide your information if a PIN or password has been entered. This could therefore reaffirm the identity of the wallet owner for extra security. | ||
|
|
||
| {% include picture.html | ||
| image = "/assets/images/payments/reveal-by-pin.gif" | ||
| retina = "/assets/images/payments/reveal-by-pin.gif" | ||
| mobile = "/assets/images/payments/reveal-by-pin.gif" | ||
| mobileRetina = "/assets/images/payments/reveal-by-pin.gif" | ||
| alt-text = "reveal-by-PIN" | ||
| width = 1600 | ||
| height = 800 | ||
| %} | ||
|
|
||
| #### Pros | ||
|
|
||
| - The risk of an unauthorized person revealing your information is minimal due to the PIN required | ||
|
|
||
| #### Cons | ||
|
|
||
| - It may not be convenient for the users to repeatedly put in their PIN when ever they want to reveal your information especially if they do so often. | ||
|
|
||
|
|
||
|
|
||
| ## Hide if inactive | ||
|
|
||
| Another solution would be to invoke the wallet’s hidden state as a default when the app is opened. What this means is that in the event that someone sees your wallet when you open it, they wouldn't be able to make out the information. The pre-hidden state can be unveiled after a tap, PIN entry, or perhaps a short 5 second timer. | ||
|
|
||
| {% include picture.html | ||
| image = "/assets/images/payments/hide-by-default.gif" | ||
| retina = "/assets/images/payments/hide-by-default.gif" | ||
| mobile = "/assets/images/payments/hide-by-default.gif" | ||
| mobileRetina = "/assets/images/payments/hide-by-default.gif" | ||
| alt-text = "hide-by-default" | ||
| width = 1600 | ||
| height = 800 | ||
| %} | ||
|
|
||
| #### Pros | ||
|
|
||
| - Users have some time to assess their environment before their info is displayed. | ||
|
|
||
| #### Cons | ||
|
|
||
| - The user may feel a bit frustrated having to wait for their information to be revealed especially in an urgent situation | ||
|
|
||
| ## Making the toggle less obvious | ||
|
|
||
| Having the show/hide button right on the main screen make things quite obvious for someone who has access to your device to press unhide. A solution would be to move the hide toggle away from the home screen and into the app settings[^1]. This way, if someone has access to your device and opens the app, they may not immediately know how to reveal the balance, transaction and/or addresses as it is not made obvious as the previous solutions. | ||
|
|
||
| {% include picture.html | ||
| image = "/assets/images/payments/hide-in-settings.gif" | ||
| retina = "/assets/images/payments/hide-in-settings.gif" | ||
| mobile = "/assets/images/payments/hide-in-settings.gif" | ||
| mobileRetina = "/assets/images/payments/hide-in-settings.gif" | ||
| alt-text = "hide-in-settings" | ||
| width = 1600 | ||
| height = 800 | ||
| %} | ||
|
|
||
| #### Pros | ||
|
|
||
| - The risk of an unauthorized person revealing your information is minimal due to the fact that the toggle isn't immediately visible on the home screen | ||
|
|
||
| #### Cons | ||
|
|
||
| - This solution may not be convenient for a user to quickly hide their information if the need arises. | ||
|
|
||
|
|
||
|
|
||
| ## Why is this pattern important to designers? | ||
|
|
||
| Privacy in bitcoin payments goes far beyond hiding balances and other sensitive information, the privacy by design framework[^4] states that privacy should be incorporated and built into products by default. This way, whether or not the user is concerned with their data privacy, they would always be protected through good UX and UI. | ||
|
|
||
| By including the hiding information pattern in design of wallets, we give users a greater sense of control and comfortability in any environment when using it. They have the freedom to decide whether or not they want their information visible. | ||
|
|
||
| [^1]: https://medium.com/@olanrewajusodiq64/the-ui-ux-of-hide-balance-designing-to-improve-asset-security-e4b20668f315 | ||
| [^2]: https://github.com/bitcoin-core/gui/issues/82 | ||
| [^3]: https://docs.wasabiwallet.io/using-wasabi/PrivacyMode.html | ||
| [^4]: https://www.ipc.on.ca/wp-content/uploads/Resources/7foundationalprinciples.pdf | ||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.