From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; dkim=pass header.d=irif.fr header.i=@irif.fr header.a=rsa-sha256 header.s=dkim-irif header.b=IB3ChB4X; arc=none (Message is not ARC signed); dmarc=none 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 939A718FDBE3 for ; Fri, 23 Oct 2026 23:10:43 +0200 (CEST) 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 69NLAgfN028053 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 23 Oct 2026 23:10:42 +0200 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 69NLAg86018611; Fri, 23 Oct 2026 23:10:42 +0200 Received: from mailhub.math.univ-paris-diderot.fr (unknown [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id C198654F81; Fri, 23 Oct 2026 23:10:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=irif.fr; h= content-transfer-encoding:content-type:content-type:mime-version :user-agent:references:in-reply-to:subject:subject:from:from :message-id:date:date:received:received; s=dkim-irif; t= 1792789841; x=1793653842; bh=4jcaERNZWDYcLUIDhqpW1MirJFtxrVto2EX OvEb/dNQ=; b=IB3ChB4XjOLCKDuVoxI7g7178734x9ZeXGr3CZjab63c0519DAq 0px+wy9+EFyy7YHBwPJJ1GY44K/AsabrWiPYhebtpWQy7KDCm1mmi4USbSbG46hU 70SwTHs+/GeSXeluUV+cplUqxo/Waq/hUvrgL1E2DIrzixZQXM+XJrPKRNn6/KNN YP52u9xK70YHRcxnrPR3/lOLgSGeSISDn5XcyaqJtH0NuJ9yNjp09Oc1HRWkEtdw IDXODl0mR5pxdeJKCB2SH4wJ2f6wt0mBCjmwZN10zltLr2g+Xef5FDaIhYhW0xO9 jMK73ri+hdERzTociel8zBEQUxJwOJf+M4w== 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 2uT6_TEUKKw4; Fri, 23 Oct 2026 23:10:41 +0200 (CEST) Received: from trurl.irif.fr (unknown [82.64.191.149]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id CF14D54F80; Fri, 23 Oct 2026 23:10:41 +0200 (CEST) Date: Fri, 23 Oct 2026 23:10:41 +0200 Message-ID: <871p9g2kdq.wl-jch@irif.fr> From: Juliusz Chroboczek To: Z0T Cc: galene@lists.galene.org In-Reply-To: <179174903297.1218.62771834147183727@gauss> References: <0eae8676-9575-4930-b0ee-d364251cf1d0@mochela.it> <179174903297.1218.62771834147183727@gauss> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/30.2 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Fri, 23 Oct 2026 23:10:42 +0200 (CEST) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Fri, 23 Oct 2026 23:10:42 +0200 (CEST) X-Miltered: at korolev with ID 6ADBCD52.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-Miltered: at potemkin with ID 6ADBCD52.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 6ADBCD52.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/ X-j-chkmail-Enveloppe: 6ADBCD52.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 : 6ADBCD52.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Score: MSGID : 6ADBCD52.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: CTGX2FG4HT5XPUA764T4PEIVNKCL2DP7 X-Message-ID-Hash: CTGX2FG4HT5XPUA764T4PEIVNKCL2DP7 X-MailFrom: jch@irif.fr X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Subject: [Galene] Re: End-to-end encryption, revisited (SFrame, client-side only) 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: > I'm writing about end-to-end encryption. I agree with you, perhaps its time has come. But if we do end-to-end encryption, we need to do it right: there's no point implementing it if it does not actually improve security. > 1. a per-group setting, or simply a key present in the URL fragment (never > sent to the server), enables encryption in the browser; You need a key exchange protocol, and you need to rekey regularly (say, every 20 minutes or so). You need to rekey every time a client leaves a meeting (so that a person who got kicked out cannot snoop on the meeting). The tricky bit is that with end-to-end encryption we are assuming the server operator is mounting a passive attack, so the key exchange protocol needs to be invulnerable to snooping. I'm looking at the litterature, and while there do exist some multi-party key exchange protocols, they're extremely complex. =20 > 2. frames are encrypted with SFrame (AES-256-GCM), keys derived from > a shared group secret with HKDF; No, the ability to rekey is essential. If we cannot rekey, then we might as well not implement it. > 3. encrypted groups are restricted to VP9 or AV1, with whatever minimal > unencrypted prefix Gal=E8ne still needs for keyframe detection, documented > explicitly; I'm not sure that's necessary. We should be able to signal keyframes explicitly. > - Would you accept such a contribution upstream (MIT, small, loaded lazily > so it costs nothing to groups that don't use it), or would you prefer it > to live as a separate client? No promises either way, I'd need to see the code. > - Which unencrypted bytes, if any, does the current server actually need > from VP9 and AV1 frames? See the file codecs.go. > PS. To do this I proposed I'll use AI contribute. We'll see how it goes. However, given the AI contributions I've received in the past (verbose, repetitive, and impossible to review), I'm not optmistic. Regards, -- Juliusz