decentralized-identity / interoperability

The archive and information hub for the cross-community interoperability project. Focus is on education and familiarity for various efforts across multiple groups for interoperable decentralized identity infrastructure.
https://identity.foundation/interop/
Apache License 2.0
93 stars 19 forks source link

Adopt a strategy and set of libraries for handling the QR Code #13

Closed OR13 closed 4 years ago

OR13 commented 5 years ago

Let use consider the case of using OIDC SIOP QR Codes, separate from potential DIDComm QR Codes.

OIDC SIOP does not have a concrete implementation yet: https://github.com/decentralized-identity/interop-project/issues/14

In order to complete one, we need to commit to the QR Codes and share enough information about the implementation to support Identity Wallet providers.

The specific handling of the QR Codes is according to the spec

OR13 commented 5 years ago

I have previously used:

https://github.com/moaazsidat/react-native-qrcode-scanner

https://www.npmjs.com/package/qrcode.react

https://www.npmjs.com/package/react-qr-reader

OR13 commented 5 years ago

We may consider this ticket resolved once we have some comments of the feasibility of QR Code support for OIDC SIOP from some wallet implementers.

OR13 commented 5 years ago

https://github.com/hellobloom/share-kit-react

^ Bloom library for handling QR Codes.

ipatka commented 5 years ago

We're also looking for ways to make the QR less dense so it works on lower res displays. See PR here: https://github.com/hellobloom/share-kit/pull/60

basically the request data would be at a payload URL within the QR. this will allow us to get super granular about when claims were issue and by whom (whitelist, blacklist)

kdenhartog commented 5 years ago

@ipatka I think there's merits to this approach. There's also been some attempts to handle this via a rotating QR code to make the QR like a stream of data. Here's an example: https://github.com/digitalbazaar/qram

One of the considerations of using a link in a QR code is that it has potential analytics concerns. For example, when using bit.ly links bit.ly provides analytics data around the usage of the link to the creator. Do we want to try to prevent the url used from being able to analyze usage in order to account for privacy considerations or should we address these aspects at a later time?

ipatka commented 5 years ago

Streaming QRs are a cool solution. Regarding analytics I had imagined that the recipient requesting the data would also host the endpoint with the payload. But I suppose if they were using a standard request they might use a link someone else created. Definitely worth considering.

OR13 commented 5 years ago

See also: https://github.com/uport-project/uport-transports/blob/develop/src/transport/qr.js

OR13 commented 5 years ago

qram is interesting, but I'd like us to focus on simple static QR Codes for first phase.

awoie commented 5 years ago

A few years ago we had a discussion on streaming QR codes in one of the ISO groups I was participating. There are some patents that need to be considered there.

OR13 commented 4 years ago

I think this is essentially blocked by Hubs / EDV / DIDComm... Credential size limits will prevent direct transfer by QR Codes.