Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Juliusz Chroboczek <jch@irif.fr>
To: galene@lists.galene.org
Subject: [Galene] Peer-to-peer file transfer in Galene
Date: Sun, 30 Jan 2022 17:40:16 +0100	[thread overview]
Message-ID: <877dah9nyn.wl-jch@irif.fr> (raw)

Hi,

I've been trying to refrain from adding too many features that are not
related to videoconferencing, but given the lack of simple to setup
peer-to-peer file transfer protocols, I've given in on this one.

In order to send a file to a member of the group, just type "sendfile user"
and follow the prompts.

This is stricly peer-to-peer: the server is only used for signalling
(exchanging IP addresses and cryptographic keys).  The protocol is
somewhat convoluted (and undocumented), in order to satisfy the following
properties:

  - rejecting an offered file does not disclose your IP address to the peer;
  - there is an application handshake at the end, so the sender has
    reliable feedback on whether the file went through.

Of course, sending or accepting a file does disclose your IP address --
that's the nature of peer-to-peer.

While the protocol is reasonably secure (SCTP over DTLS), anyone who
controls the server can trivially set up an MITM attack.  As always,
please set up your own server if you're exchanging sensitive data.

It's not very efficient.  On the sender side, we manually chop the data
into 16kB chunks (so that we don't run afoul of SCTP limitations).  Even
worse, on the receiver side, the whole file is kept in memory (since
Chrome does not support RTCDataChannel.binaryType being set to "blob", and
since no browser supports streaming received data to disk).  Still, it
should be sufficient for sharing your slides during a presentation or
sending funny pictures during a boring lecture.

-- Juliusz

             reply	other threads:[~2022-01-30 16:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-30 16:40 Juliusz Chroboczek [this message]
2022-01-30 16:44 ` [Galene] " Juliusz Chroboczek
2022-01-30 16:45 ` Dave Taht
2022-01-30 17:22   ` Juliusz Chroboczek
2022-01-30 17:34     ` Dave Taht
2022-01-30 18:00       ` Juliusz Chroboczek
2022-01-30 18:12         ` Dave Taht
2022-01-30 18:19           ` Juliusz Chroboczek
2022-01-30 18:23             ` Dave Taht
2022-01-30 18:34               ` Juliusz Chroboczek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.galene.org/postorius/lists/galene.lists.galene.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877dah9nyn.wl-jch@irif.fr \
    --to=jch@irif.fr \
    --cc=galene@lists.galene.org \
    --subject='Re: [Galene] Peer-to-peer file transfer in Galene' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox