Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.74k stars 445 forks source link

Thesis: self-sovereign identity (SSI) #5576

Closed synctext closed 1 year ago

synctext commented 3 years ago

Current status:

synctext commented 3 years ago

Open crypto hardware wallet Trezor ColdCardWallet

qstokkink commented 3 years ago

If you're into crypto: another fun, open and very difficult problem in the space of Self-Sovereign Identities is that of credential revocation. You can get a taste of the problem space in these papers: paper1, paper2. You'll have to make sure revocation data propagates decentrally and that the revocation lists/sets are anonymized.

synctext commented 3 years ago

Are we interleaving requirement analysis and prototyping? Sounds like the good thing todo in this unexplored field. Hardware expertise level: no soldering iron, custom firmware-only. Discussed "Member States"+EC co-author objective.

EU digital ID scheme for online transactions across Europe

An EU digital ID scheme (EUid) will:
  - make it safer and easier to use online services anywhere in Europe
    (e.g. enrolling in a foreign university, opening a bank account, accessing public services)
  - give people more control over their personal data and privacy while respecting user anonymity.
Type of act:    Proposal for a regulation
InvictusRMC commented 3 years ago

Sicco's assignment request:

synctext commented 3 years ago

Today is the first thesis day! Goal: determine direction in 3 weeks. Draft problem description. Firmware project or algorithm work? Related work on SSI: https://repository.tudelft.nl/islandora/object/uuid%3A200f1df0-adda-47a1-894c-baf54133035a plus obviously prior thesis from our Lab: https://repository.tudelft.nl/islandora/object/uuid%3Aaab1f3ff-da54-47f7-8998-847cb78322c8

InvictusRMC commented 3 years ago

Initial thesis ideas: Thesis_Ideas-2.pdf

WIP proposal: Thesis_Proposal.pdf

synctext commented 3 years ago

Currently have a few possible directions:

Understand prior work

qstokkink commented 3 years ago

If you plan on investigating revocation, you may also want to take note of this recent MSc thesis (from the crypto group) regarding a credential revocation scheme: http://resolver.tudelft.nl/uuid:871e17aa-a023-461f-88b1-80d83c21de92

InvictusRMC commented 3 years ago

I have written the following Thesis proposal with the Industry-Strength SSI in mind. I plan to submit this to Sicco.

Thesis_Proposal_V2.pdf

synctext commented 3 years ago

Nice! Seems ready for submission to Sicco. Minor comments:

realised, there is still much to gain.

Still much left to investigate.

(4) interoperability is another key challenge. This needs to be an open standard and have an open reference implementation. But somehow the Spanish wallet provider needs to be able to talk fluently to Polish verifiable claim providers. So, a German/Dutch international SSI trail would be a key milestone to achieve.

The main knowledge gap currently existing in the research area of SSI is the gap between the theoretical frameworks and the practicality of an implementation of these theoretical frameworks.

The main knowledge gap currently existing in the research area of SSI is the gap between the theoretical frameworks and the feasibility these theories. For instance, strict processing latency requirements on mobile devices. Governments would be reluctant to ask many of the European Union citizens to upgrade their phones. Governance requirements by nation-states, complexity, communication overhead, and fault-tolerance are other gaps.

we can derive the following sub-questions that can be used to substantiate an answer to this research question

Too generic. We know prior work, functional requirements and its limits. This deviates from what is really needed. As scientists we can ignore the eIDAS and GDPR legal constraints somewhat. The next stage in the maturing of the SSI theoretical concepts is to go beyond mock-up trails. We need to devise the most simple as possible SSI architecture which integrates the following required elements in a technology neutral manner:

InvictusRMC commented 3 years ago

Great feedback. I've updated the research questions and added a minor section on interoperability. The research questions could still use a little refinement, however, are sufficient for the assignment description submission in my opinion.

Thesis_Proposal.pdf


Update: Stjepan called it "more than enough".

InvictusRMC commented 3 years ago

Update:

synctext commented 3 years ago

https://graz.pure.elsevier.com/en/publications/revocable-and-offline-verifiable-self-sovereign-identities

InvictusRMC commented 3 years ago

Had a great talk with @qstokkink. Got an introduction to the Python code and pointers to interesting authors and what literature to stay away from.

Also my literature list for now (will be growing after the pointers from Quinten):

CLICK ME

-  Stokkink, Q., Epema, D., & Pouwelse, J. (2020). A Truly Self-Sovereign Identity SystemarXiv preprint arXiv:2007.00415. -  Dong, C., Wang, Z., Chen, S., & Xiang, Y. (2020). BBM: A Blockchain-Based Model for Open Banking via Self-sovereign Identity. In International Conference on Blockchain (pp. 61–75). -  Stokkink, Q., & Pouwelse, J. (2018). Deployment of a blockchain-based self-sovereign identity. In 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData) (pp. 1336–1342). -  Zwitter, A., Gstrein, O., & Yap, E. (2020). Digital Identity and the Blockchain: Universal Identity Management and the Concept of the “Self-Sovereign” Individual Frontiers in Blockchain, 3. -  Van Bruggen, C.. (2020). Forward-looking consistency inAttribute-Based Credentials. -  Ferdous, M., Chowdhury, F., & Alassafi, M. (2019). In search of self-sovereign identity leveraging blockchain technology IEEE Access, 7, 103059–103079. -  Tobin, A., & Reed, D. (2016). The inevitable rise of self-sovereign identity The Sovrin Foundation, 29(2016). -  Cameron, K. (2005). The laws of identity Microsoft Corp, 5, 8–11. -  Allen, C.. (2016). The Path to Self-Sovereign Identity. -  Mühle, A., Grüner, A., Gayvoronskaya, T., & Meinel, C.. (2018). A survey on essential components of a self-sovereign identity. -  Zhou, T., Li, X., & Zhao, H. (2019). EverSSDI: Blockchain-based framework for verification, authorisation and recovery of self-sovereign identity using smart contractsInternational Journal of Computer Applications in Technology, 60(3), 281–295. -  Coelho, P., Z'uquete, A., & Gomes, H. (2018). Federation of Attribute Providers for User Self-Sovereign Identity Journal of Information Systems Engineering & Management, 3(4). -  Helmy, N.. (2020). Overview of Decentralized Identity Standards. -  Der, U., Jähnichen, S., & Sürmeli, J. (2017). Self-sovereign identity - opportunities and challenges for the digital revolutionar Xiv preprint arXiv:1712.01767. -  Wang, F., & De Filippi, P. (2020). Self-Sovereign Identity in a Globalized World: Credentials-Based Identity Systems as a Driver for Economic InclusionFrontiers in Blockchain, 2, 28. -  Othman, A., & Callahan, J. (2018). The Horcrux Protocol: A Method for Decentralized Biometric-based Self-sovereign Identity. In Proceedings of the International Joint Conference on Neural Networks. Institute of Electrical and Electronics Engineers Inc.. -  Speelman, T. (2020). Self-Sovereign Identity: Proving Power over Legal Entities. (Master Thesis, TU Delft). -  Baars, D. (2016). Towards self-sovereign identity using blockchain technology. (Master Thesis, UTwente) - Otte, P., de Vos, M., & Pouwelse, J. (2020). TrustChain: A Sybil-resistant scalable blockchain. Future Generation Computer Systems, 107, 770-780. - Abraham, A., Hörandner, F., Omolola, O., & Ramacher, S. (2019, December). Privacy-Preserving eID Derivation for Self-Sovereign Identity Systems. In International Conference on Information and Communications Security (pp. 307-323). Springer, Cham.

InvictusRMC commented 3 years ago

Some updates:

Here is my very (!) rough draft. Thought I'd include it for completeness sake.

synctext commented 3 years ago

Lots of lost or stolen ID documents: 900 documents per day Note that we use Tor-like stack to offer proper privacy when using your digital identity at passport-grade level. Now we could also utilise our distributed technology for secure dynamic data exchange. Multiple times per day the government could publish revoked (lost/stolen) passports in their channel. A channel is a collection of signed data blobs, each blob is a swarm (sort of P2P RSS feed which can scale without bounds) (DDos protected, like attack on mijnoverheid.nl).

Quinten advise: just start; translated? : dive into Superapp stack with Kotlin IPv8

InvictusRMC commented 3 years ago

I have made a design on how the Hybrid-Revocation Model could work: hybrid-revocation

Also a design how it can be integrated in the regular verification flow: Claim-Verification-Flow

InvictusRMC commented 3 years ago

Update

synctext commented 3 years ago
InvictusRMC commented 3 years ago

Update:

synctext commented 3 years ago
InvictusRMC commented 3 years ago

Progress Update

synctext commented 3 years ago
InvictusRMC commented 3 years ago

Progress update:

InvictusRMC commented 3 years ago
synctext commented 3 years ago
synctext commented 3 years ago

Related work by Evernym from Sovrin which uses central identity resolver architecture. Big 54MByte .APK on Android. "Connect.Me also includes an integration with the identity verification company Onfido." "Using Connect.Me, individuals can:

Quick review..Nice and polished app, but totally unclear why I want this. Offers no compelling features. That is actually a general problem for any stand-alone wallet. 'Empty vessel problem'. You can't do anything without recognition by the state or convincing your friends to join. Bootstrapping without a killer usage is probably impossible :thinking:. Do we need a wallet as universal Android background service? (beyond CredentialsClient object) Credential store which can be controlled by user, if they dive into settings. Clearly this "empty vessel" approach is flawed for mass uptake. Background-wallet paradigm: a identity wallet is never exposed to the user, it is always bundled with the app for opening a bank account, app for buying a house or app for government services.

Full walk-through:

(click for more details)

Screenshot_20210225_090033_me connect Screenshot_20210225_085953_me connect Screenshot_20210225_090004_me connect Screenshot_20210225_090055_me connect Screenshot_20210225_090107_me connect Screenshot_20210225_090116_me connect Screenshot_20210225_090318_me connect

InvictusRMC commented 3 years ago

The basic functionality for the demo is done! ssi-debug-apk-v0.1.zip The app can be used as follows:

The home screen

The home screen shows a QR code of your public key. This can be scanned using the scanner to add this key to your trusted authorities. Secondly, the screen shows your attestations (currently only the Peng & Bao attestation). You can press on any of the attestations to display the QR code. This looks as follows:

This QR code can also be scanned using the scanner.

The scanner

The scanner has two functionalities: it can scan attestations and public keys. When scanning an attestation, the user is prompted the following:

If the user chooses to verify, the attestation is verified locally through the signature of the signee.

The results in one of the following results:

When scanning a public key, the user is prompted by the following and can add a new trusted authority:

Users screen

On the users screen, attestations can be requested. When pressing on a valid peer, a prompt opens for an attribute name:

On the other client's end, the following prompt launched for entering a value (for now only numerical for the 18 plus check):

A Peng Bao attestation is subsequently send to the requesting party and added to his wallet. This can then be presented and scanned as explained prior.

InvictusRMC commented 3 years ago

Update:

APK (file size too big for direct upload): https://1drv.ms/u/s!AiR7NDwNQapx_BXQ6nHMspyUGo0e?e=J5TB1t

qstokkink commented 3 years ago

Just had a quick glance at your source code: you may want to look into porting the CommunicationManager for a clean programmatic pseudonym management API, instead of accessing all of the primitives and database data directly. This class also includes rendezvous logic so you can find your counterparty on the Internet if more than 30 people join your community.

Side note: this is how we map user interactions to the CommunicationManager in Python.

InvictusRMC commented 3 years ago

Just had a quick glance at your source code: you may want to look into porting the CommunicationManager for a clean programmatic pseudonym management API, instead of accessing all of the primitives and database data directly. This class also includes rendezvous logic so you can find your counterparty on the Internet if more than 30 people join your community.

Side note: this is how we map user interactions to the CommunicationManager in Python.

Thanks for the pointers, @qstokkink! The communication manager was definitely on my TODO list, however, I made the decision that, merely, the WalletCommunity is sufficient for the upcoming field trial of ~15 people.

This class also includes rendezvous logic so you can find your counterparty on the Internet if more than 30 people join your community.

This I did not know and was something that already crossed my mind. This will definitely be necessary, I will port these. Thanks!

InvictusRMC commented 3 years ago

I just made a release for the 18 plus SSI app for the field trial this Thursday. Download link.

The dashboard only contains two apps:

Plus, I changed the icon background color for distinguishability:

image

InvictusRMC commented 3 years ago

Nifty functionality: got attestation requesting and signing (and also the QR local verification) fully functional "offline" through Bluetooth! It's a bit slower, due to lower MTU, and unstable, but it does work.

InvictusRMC commented 3 years ago

Progress update:

synctext commented 3 years ago

Keeping track of developments

qstokkink commented 3 years ago

In case you care about IRMA: I recently fixed the script that pulls BRP attributes from the Nijmegen IRMA server. I'm not sure if I'd recommend supporting this, as you need to go through a DigiD portal.. but it works again.

InvictusRMC commented 3 years ago

Progress update:

synctext commented 3 years ago
Month Task
April Core research and draft text article/thesis
May Scientific results beyond state-of-the-art
June Polish thesis + article
July Done
Every time an App or website asks us to create a new digital identity or to easily log
on via a big platform, we have no idea what happens to our data in reality.
That is why the Commission will soon propose a secure European e-identity. 
One that we trust and that any citizen can use anywhere in Europe to do anything from
paying your taxes to renting a bicycle. A technology where we can control ourselves what
data and how data is used.
                               - State of the Union Address by President von der Leyen

https://ec.europa.eu/commission/presscorner/detail/en/SPEECH_20_1655

InvictusRMC commented 3 years ago

Another paper by Sovrin on revocation: https://sovrin.org/wp-content/uploads/AnonCred-RWC.pdf

InvictusRMC commented 3 years ago

Just had an idea for the secondary issue of loss recovery:

qstokkink commented 3 years ago

You could check out the results of #3245 and #3246. Both groups used Shamir shares for recovery.

synctext commented 3 years ago

WEF authors to contact: https://www.weforum.org/agenda/2021/04/trust-is-fraying-how-trust-anchors-could-help-gtgs/

InvictusRMC commented 3 years ago

Update Progress

synctext commented 3 years ago
InvictusRMC commented 3 years ago

Progress update:

Self reflection:

Proposed roadmap (next two weeks):

synctext commented 3 years ago
InvictusRMC commented 3 years ago

"Von Der Leyen"-Trial (Although name is revealed, 18 plus also works)

https://user-images.githubusercontent.com/22516119/117710216-28c24180-b1d2-11eb-8554-5eec57ab38e6.mp4

InvictusRMC commented 3 years ago

Progress

DRAFT_Thesis_27-05-2021.pdf DRAFT_Article_27-05-2021.pdf

synctext commented 3 years ago
InvictusRMC commented 3 years ago

With thanks to Andre:

https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=COM%3A2021%3A281%3AFIN&qid=1622704576563