MatrixAI / Polykey-Desktop

Polykey Desktop - Open Source Decentralized Secret Sharing System for Zero Trust Workflows
https://polykey.com
GNU General Public License v3.0
11 stars 7 forks source link

QR code for public key sharing #143

Open CMCDragonkai opened 1 year ago

CMCDragonkai commented 1 year ago

Original Author: robert-cronin

Just in case there are key-nodes no attached to human identities on keybase, we might be able to encode the public key in a QR code for easy scanning. This is a low priority once we get keybase integration in thought.

For example this is my keybase public key encoded in a pretty huge QR code, but it does seem to scan properly. image The quality seems to have reduced when uploading to github, I used this website for encoding: https://www.the-qrcode-generator.com/ There are other QR code formats we could look into.

CMCDragonkai commented 1 year ago

Original Author: CMCDragonkai

We should have a general issue for the Keynode Profile.

CMCDragonkai commented 1 year ago

Original Author: CMCDragonkai

Given that we are thinking of cryptoforts avatars for Polykey, I wonder if they can be used instead of QR codes.

For higher density QR codes, we can use fountain codes combined with animation and colours.

See: https://github.com/divan/txqr

CMCDragonkai commented 1 year ago

Original Author: CMCDragonkai

We would need to shorten our public key quite significantly. Perhaps our base keys should be ed25519. Wireguard public keys are quite short, and we could use that as a basis for generating all subkeys. Then PK keys can be like Matrix keys.

@ning.zhang can you elaborate on the design of wireguard keys/relay keys and how we use ed25519 keys and how is wireguard able to use such short keys?

This may have some relation with our cryptoforts idea. I'm wondering if a new scheme can be developed for this purpose.

CMCDragonkai commented 1 year ago

Some more information:

»» ~
 ♜ nmcli device wifi hotspot                                                                                                                                                    pts/1 13:23:23
Device 'wlp45s0' successfully activated with '27e01493-b439-4c00-b248-e64a6d54c6a1'.
Hint: "nmcli dev wifi show-password" shows the Wi-Fi name and password.
»» ~
 ♖ nmcli device wifi show-password                                                                                                                                              pts/1 13:23:26
SSID: Hotspot-matrix-vostro-5402-1
Security: WPA
Password: VRdoqOP4

  █████████████████████████████████████
  ██ ▄▄▄▄▄ █▀ █▀▀██▄▄ ▀▄█▀▀▄ █ ▄▄▄▄▄ ██
  ██ █   █ █▀ ▄ ██▄█ █▄█▀▄ ▀▄█ █   █ ██
  ██ █▄▄▄█ █▀█ █▄   ▀▀██ ▄ ▄██ █▄▄▄█ ██
  ██▄▄▄▄▄▄▄█▄█▄█ ▀▄▀▄█ ▀▄▀▄█ █▄▄▄▄▄▄▄██
  ██▄  ▄▄█▄   ▄█▄█▄ ▀██ ▄█▄ ▄ ▀▄█▄█ ▀██
  ██▀▀██ ▀▄▄▄ ▀ ▄█▀█▀▄ █▄▀ ▀ ▄██ ▀▀▀███
  ██▀█  ▄ ▄█  ▀▄▀▀▀▀▄▄▀▀▄▀ ▀█ ▀▄▄  █▄██
  ██▀▄▄▄▀█▄▀▄▄▀█▀ ▄ ▄█▀█ ▀▀█▄▀▀ ▀█ ▄▀██
  ██▄▀▀ ▄ ▄▄   █▄█▄ ▀ ▀ █▀ ▀█ ▀▄█▄█▄███
  ███▀▄ ▄▀▄▀▄▄  ▄█▀█▀▄█▀█ ▄█▀██  ▀▀ ███
  ██▀ ▄██ ▄ ▀▀ ▄▀▀▀▀█▄█▀▄▀ ▀▄▄▀▀▄  █▄██
  ██ █ █▄▄▄█▀█▀█▀ ▄▄▄█▄██▀███  ▀▄ ▀ ▀██
  ██▄███▄█▄█ ▀▀█▄█▄█▄▀▀▀▄█▄▄ ▄▄▄ ▄  ███
  ██ ▄▄▄▄▄ █▄▀▀ ▄█▀▄▄▄██▀▀   █▄█ ▀ ▄▀██
  ██ █   █ █ ▀█▄▀▀▀█▄██▀▄██▀  ▄▄▄█  ▀██
  ██ █▄▄▄█ █  ▀█▀ ▄ ▀█ █   ▄█ ▄█▀▄ ████
  ██▄▄▄▄▄▄▄█▄███▄█▄▄▄▄▄█▄███▄██▄▄▄█▄███
  █████████████████████████████████████

image

It's possible to print QR codes on the terminal.

Also:

Which can be useful in case we need to do labelling for authenticity like physical NFTs.

Other ideas are encrypted QR codes or secure QR codes, allowing it to only be read if the user has a the right key.

CMCDragonkai commented 1 year ago

ED25519 keys will allow us to have much smaller keys. And we can allow this to be easily used to create digital signatures too that can be printed or sent to any program to be further used.

Furthermore there's also micro QR codes which are much smaller, so they can be used for very small situations.