From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass (mailfrom) smtp.mailfrom=irif.fr (client-ip=2001:660:3301:8000::1:2; helo=korolev.univ-paris7.fr; envelope-from=jch@irif.fr; receiver=) Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) by mail.toke.dk (Postfix) with ESMTPS id A1B73921FDF for ; Sun, 30 Jan 2022 17:40:20 +0100 (CET) Received: from potemkin.univ-paris7.fr (potemkin.univ-paris7.fr [IPv6:2001:660:3301:8000::1:1]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 20UGeI2A009529 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Sun, 30 Jan 2022 17:40:18 +0100 Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by potemkin.univ-paris7.fr (8.14.4/8.14.4/relay2/82085) with ESMTP id 20UGeIBM014076 for ; Sun, 30 Jan 2022 17:40:18 +0100 Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 2CD1BF137B for ; Sun, 30 Jan 2022 17:40:18 +0100 (CET) X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id l9Bcted42tjR for ; Sun, 30 Jan 2022 17:40:16 +0100 (CET) Received: from pirx.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 5CB95F1378 for ; Sun, 30 Jan 2022 17:40:16 +0100 (CET) Date: Sun, 30 Jan 2022 17:40:16 +0100 Message-ID: <877dah9nyn.wl-jch@irif.fr> From: Juliusz Chroboczek To: galene@lists.galene.org User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.1 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Sun, 30 Jan 2022 17:40:18 +0100 (CET) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Sun, 30 Jan 2022 17:40:18 +0100 (CET) X-Miltered: at korolev with ID 61F6BF72.001 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-Miltered: at potemkin with ID 61F6BF72.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 61F6BF72.001 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/ X-j-chkmail-Enveloppe: 61F6BF72.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/ X-j-chkmail-Score: MSGID : 61F6BF72.001 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Score: MSGID : 61F6BF72.000 on potemkin.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Status: Ham X-j-chkmail-Status: Ham Message-ID-Hash: KQJ2ZEWCZHI2HGCRJVP6E4LPPJHSJZ3R X-Message-ID-Hash: KQJ2ZEWCZHI2HGCRJVP6E4LPPJHSJZ3R X-MailFrom: jch@irif.fr X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.5 Precedence: list Subject: [Galene] Peer-to-peer file transfer in Galene List-Id: =?utf-8?q?Gal=C3=A8ne_videoconferencing_server_discussion_list?= Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: 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