Linking social Veilid apps for contact re-use

As a VeilidChat user, I would like to be able to securely connect with my VeilidChat contacts in other (Veilid powered) social apps without going through out of band connection flows with them (again); Or of course the other way around from another Veilid app to VeilidChat.

Accordingly, here is a v0.1 proposal for linking apps with step by step descriptions of the flow with Renuicorn and VeilidChat as an example.

app_linking_v0.1

  1. Link Reunicorn & VeilidChat
    1. In the Reunicorn settings, choose "VeilidChat" from the other Reunicorn supported social Veilid apps
    2. This creates two DHT records with a shared secret in the background to be used as the channel from Reunicorn to VeilidChat and the other way around.
    3. An app link containing the two record keys, the writer for VeilidChat and a shared secret (as soon as the channel between the apps is established, this can be rotated out for DH derived shared secrets and corresponding keypairs continuously rotated as seen fit).
    4. As on the Reunicorn side, in VeilidChat the user can configure if they want to receive contact proposals from Reunicorn, provide them to Reunicorn, or both.
  2. Tell Reunicorn Contacts
    1. For each contact the Reunicorn user (Leo) creates a DHT record and a shared secret and shares both with them (Kim), letting them know that this is a communication channel intended for VeilidChat.
    2. Kim does the same (might have already been the case before Leo did it)
    3. Leo's sharing record key with its writer, Kim's sharing record key, their shared secret(s), and Kim's name are passed via the DHT channel from Leo's Reunicorn to VeilidChat app (this is mirrored by Kim)
  3. Connect on VeilidChat
    1. In Leo's VeilidChat app, they see a proposal to add Kim as a new contact with the hint that they are already connected on Reunicorn (optional, could also be added to contacts straight away if desired)
    2. If Leo accepts that proposal, they can now use this DHT channel that was established via their Reunicorn connection to bootstrap a VeilidChat specific communication channel or reuse the two DHT records straight away if compatible (as soon as the channel between the two users is established, the shared secrete(s) can be rotated out for DH derived shared secrets and corresponding keypairs continuously rotated as required by VeilidChat).
    3. Leo and Kim continue to use VeilidChat together, securely and without having to e.g. scan QR codes or send out of band links

Let me know if anyone else has already thought along those lines as well and what approach you envision.

Assignee Loading
Time tracking Loading