project-robius / project-robius/robrix

[TSP] Require biometric authentication at time-of-upload when securely sharing TSP-encrypted documents

Open
#601 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked-on-robius tsp
Dominant language
Rust
Stars
487
Forks
68
Avg merge
1h 22m
Merged PRs (30d)
54

Description

"Biometric authentication as a time-of-use check when sending sensitive wallet contents/documents to a room".

Example usage scenario: onboarding workflow

  • A new user (with their own TSP ID) wants to set up access to an existing project
  • They must communicate with an existing administrator or project maintainer in order to set up their privileged access to said project
  • The admin wants to be able to securely verify the new user's identity
  • The admin may also require the new user to sign an agreement, terms of use, or another form of document, e.g., a Developer Certificate of Origin (DCO)
    • Existing approaches for this are just a signature with an account, e.g., DocuSign, or even worse, a scanned image of a physical ink signature.
    • There is no real guarantee that the user who "signed" the agreement/document is actually the person they say they are
  • Key Challenge: The user must be able to provide and attach proof along with the signed document that they are (1) who they say they are, and (2) they are the one who signed the document, all without a centralized authority.
    1. This is where TSP comes in: the TSP ID is algorithmically verifiable and authentic.
    2. Use local biometric authentication (provided by the platform, e.g., FaceID, TouchID/fingerprints) before allowing the user to actually sign the document locally.
    • This is analogous to going to a public notary to sign a document in person under their supervision.
      • In this case, TSP + the platform together act as the notary to verify the user's actual identity and that they were the signatory.
  • Thus, by virtue of the user sending TSP-signed messages in the Matrix room, the admin can be assured that they are who they say they are. Similarly, by virtue of them sending a signed document, the admin can be assured that they are the ones who signed & completed it.
  • TSP + local biometric authentication prevent the attack vector in which your local device is stolen or otherwise compromised.
    • Together, this meets national legal requirements for signatures, similar to public notary services.

Implementation

  • We have a well-tested robius-authentication for this purpose, so it should be relatively straightforward to add this into Robrix.
  • However, uploading actual documents/file content is blocked on Robius's support for rfd on all platforms (currently missing Android).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the existing robius-authentication integration and the upload path described in the issue, then check how rfd support varies across platforms, especially Android. Done means biometric authentication is required before signing or uploading TSP-encrypted documents, with document attachment support available on the target platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
mobile-dev, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.