[Masque] MASQUE and Tor "pluggable transports"

Philipp Winter <phw@torproject.org> Tue, 06 August 2019 16:20 UTC

Return-Path: <phw@torproject.org>
X-Original-To: masque@ietfa.amsl.com
Delivered-To: masque@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6EBC81200F4 for <masque@ietfa.amsl.com>; Tue, 6 Aug 2019 09:20:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gaocukH2Bee3 for <masque@ietfa.amsl.com>; Tue, 6 Aug 2019 09:20:46 -0700 (PDT)
Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87599120098 for <masque@ietf.org>; Tue, 6 Aug 2019 09:20:46 -0700 (PDT)
Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.riseup.net (Postfix) with ESMTPS id 1F3B71B92A2 for <masque@ietf.org>; Tue, 6 Aug 2019 09:20:45 -0700 (PDT)
X-Riseup-User-ID: D6A98AFA62B03DF364A86BD9B69F07522E0D4F339062707E0C202FB066E54282
Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 5791A2220A5 for <masque@ietf.org>; Tue, 6 Aug 2019 09:20:45 -0700 (PDT)
Date: Tue, 06 Aug 2019 09:20:44 -0700
From: Philipp Winter <phw@torproject.org>
To: masque@ietf.org
Message-ID: <20190806162044.etph52mdghi6mtlb@nymity.ch>
Mail-Followup-To: masque@ietf.org
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/masque/Cxh1phx6vFgn19jyANmt2YwLDqQ>
Subject: [Masque] MASQUE and Tor "pluggable transports"
X-BeenThere: masque@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiplexed Application Substrate over QUIC Encryption <masque.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/masque>, <mailto:masque-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/masque/>
List-Post: <mailto:masque@ietf.org>
List-Help: <mailto:masque-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/masque>, <mailto:masque-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Aug 2019 16:20:48 -0000

Hi everyone,

I read the most recent MASQUE draft that I found here:
<https://davidschinazi.github.io/masque-drafts/draft-schinazi-masque.html>
It's great work, thanks for this!

Section 2.4 suggests onion routing on top of MASQUE servers to add
anonymity.  There may be an easier way to accomplish this: one could
turn MASQUE into a "pluggable transport" protocol.  Originally developed
by Tor, pluggable transports are a traffic obfuscation mechanism that
puts a proxy in front of both a client and a server.  These proxies
disguise the traffic that's exchanged between client and server as shown
in the following diagram:
<https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt#n61>

Turning MASQUE into a pluggable transport would make it easy-ish to
integrate for systems that support the pluggable transport specification
including Tor, Psiphon, and Lantern.  MASQUE would also benefit from
security properties offered by its "host" system -- in Tor's case this
would be anonymity.

Practically speaking, a user would start Tor Browser with the MASQUE
pluggable transport (which would be included in Tor Browser).  A
rendez-vous mechanism would inform the user about MASQUE servers that
she could use.  Once a MASQUE server receives the user's HTTPS data, the
server extracts the content and shoves it into a Tor bridge that's
running on the same (or potentially a different) machine.  All of this
could be implemented as part of a new module for the obfs4proxy system,
which is the pluggable transport proxy that the Tor project uses:
<https://gitlab.com/yawning/obfs4>

Is there interest in pursuing support for pluggable transports?

Cheers,
Philipp