[New Issue] CID based attacks

Kashyap Thimmaraju <k.thimmaraju@informatik.hu-berlin.de> Thu, 12 November 2020 16:34 UTC

Return-Path: <k.thimmaraju@informatik.hu-berlin.de>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2B6593A13F3 for <quic@ietfa.amsl.com>; Thu, 12 Nov 2020 08:34:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.988
X-Spam-Level:
X-Spam-Status: No, score=-1.988 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=informatik.hu-berlin.de
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 7_4G29RWQg0A for <quic@ietfa.amsl.com>; Thu, 12 Nov 2020 08:34:09 -0800 (PST)
Received: from mailout1.informatik.hu-berlin.de (mailout1.informatik.hu-berlin.de [141.20.20.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 86A3B3A1216 for <quic@ietf.org>; Thu, 12 Nov 2020 08:34:08 -0800 (PST)
Received: from mailbox.informatik.hu-berlin.de (mailbox [141.20.20.63]) by mail.informatik.hu-berlin.de (8.15.1/8.15.1/INF-2.0-MA-SOLARIS-2.10-25) with ESMTPS id 0ACGY5k5021496 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <quic@ietf.org>; Thu, 12 Nov 2020 17:34:06 +0100 (MET)
Received: from hashkash-imac.local (dslb-178-012-027-180.178.012.pools.vodafone-ip.de [178.12.27.180]) (authenticated bits=0) by mailbox.informatik.hu-berlin.de (8.15.1/8.15.1/INF-2.0-MA-SOLARIS-2.10-AUTH-26-465-587) with ESMTPSA id 0ACGY4pP021490 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Thu, 12 Nov 2020 17:34:04 +0100 (MET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=informatik.hu-berlin.de; s=mailbox; t=1605198845; bh=65o8tSAam6YKY9S7hY0yMcfuRV6pP8L+MY/dPH5/ZyI=; h=To:From:Subject:Cc:Date; b=D24t8jzen2Rs/i7oYalXW0ugruNQx5e1guNcpma9V6+CHiTw4TY4VADTRwCCWYxCu FXYpQLHPrb6jvFVdAM4zSJn8PCrCClRxOLMzKXMHqT8eaX57laGf6C/x1PKwcvufbJ /VI3DCkNjfi5/qFssmdOT9RwyNI/Wncu/qBvnPLI=
To: quic@ietf.org
From: Kashyap Thimmaraju <k.thimmaraju@informatik.hu-berlin.de>
Subject: [New Issue] CID based attacks
Cc: Björn Scheuermann <scheuermann@informatik.hu-berlin.de>
Message-ID: <e078a391-b8e7-3035-ad3f-848c5effcb2f@informatik.hu-berlin.de>
Date: Thu, 12 Nov 2020 17:34:03 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.4.3
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------4007C3168DED685A03FEC6F6"
Content-Language: en-US
X-Virus-Scanned: clamav-milter 0.102.3 at mailbox
X-Virus-Status: Clean
X-Greylist: Sender succeeded STARTTLS authentication, not delayed by milter-greylist-4.6.1 (mail.informatik.hu-berlin.de [141.20.20.50]); Thu, 12 Nov 2020 17:34:06 +0100 (MET)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/CgQT8POFiazTS_ycPybkAIYUQ-Y>
X-Mailman-Approved-At: Thu, 12 Nov 2020 09:00:40 -0800
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Nov 2020 16:44:01 -0000

**

*Dear QUIC WG,*

*

I’m Kashyap Thimmaraju, a postdoctoral researcher at Humboldt University 
Berlin. Recently I discovered a couple of attacks with the QUIC 
protocol. Lars Eggert recommended that I share my findings with the WG 
to discuss the impact and relevance of these findings.


Broadly speaking, the attacks deal with the Connection ID (CID), which 
I’ve elaborated on below.


ANALYSIS

The draft specifies and recommends several important points on secure 
usage of the CID, e.g., i) the same CID MUST NOT be used multiple times 
over the same connection to prevent an eavesdropper from correlating the 
end-points; ii) end-points should associate a sequence number with each 
CID to detect reuse within the same connection; iii) CIDs should be 
(pseudo) randomly generated as they are also used for packet security 
and; iv) CIDs can be very long (max. 20 bytes).


The draft, however, does not specify how servers should handle the case 
when successive incoming connections to a server use the same 
destination CID.  Indeed, it can be seen that  based on the assumption 
that the CIDs are (pseudo) randomly generated with a maximum length of 
20 bytes, the probability of such a collision is very low.


Hence, I posit the following: If the server (implementation) does not 
permit the use of the same destination CID across successive connections 
(for a specific timeout), then an attacker can exploit this behaviour in 
at least 2 ways:

 1.

    She can enumerate the number of server instancesbehind the domain
    name/public IP address: if the handshake does not complete on the
    second/successive attempt, then she infers that she has reached the
    same instance; if the handshake succeeds then it is a new instance.

 2.

    Create a covert channel: we can assume that a sender and receiver
    agree upon a set of CIDs to use at specific times. For each time
    interval, the sender and receiver use the same destination CID. The
    sender sends a 1 by connecting to the server and a 0 by not
    connecting. The receiver always attempts to connect to the server.
    If the receiver could not complete the handshake, it’s a 1, if the
    handshake completes it’s a 0. Using this scheme a binary string can
    be covertly communicated in one direction.


EVALUATION

The primary goal of my evaluation is to identify implementations, if 
any, that prevent two subsequent QUIC connections from using the same 
destination CID. To conduct this experiment I adopted the following 
methodology. First, I created a client that uses deterministic CIDs for 
the source and destination CIDs (I modified LiteSpeed Technologies 
open-source QUIC client). Second, I used 15 implementations from those 
listed on the QUIC Working Group’s GitHub page1: either manually built 
Docker containers or the public test server. The list of servers tested 
are shown across the two rows in Table 1. To conduct the experiment, I 
had the client open and hold a QUIC connection with source CID 1 and 
destination CID 2 for a maximum of 10s with the server, and then close 
it. We then idle for 10s and repeat the steps a second time. I saved the 
debug logs of the client, packet traces and session keys. I then 
repeated the process for each of the 15 implementations. Finally, to 
obtain the results of the test, I searched the debug log of the client 
or the packet trace to confirm whether the second QUIC connection 
obtained a successful handshake or not. The absence of a successful 
handshake indicates a vulnerable implementation.


RESULTS

The results from my evaluation are shown in the table below. In 
particular, I found 4 out of 15 implementations to be vulnerable to the 
enumeration and covert channel attacks, namely, Apache Traffic Server 
(ATS), Chromium, LiteSpeed and NGTCP2. In an evaluation of the 
throughput using Lsquic clients and server on my desktop I measured a 
throughput of ~30 bps.


VULNERABLE : IMPLEMENTATION

NO : Akamai, F5, Quinn, Aioquic, Quiche, Proxygen, Neqo, Nginx, 
Picoquic, Quant, Quicly

YES : ATS, Chromium, Lsquic, Ngctcp2

*
Sincerely,

-- 
Dr.-Ing Kashyap Thimmaraju

Lehrstuhl für Technische Informatik
Institut für Informatik
Humboldt-Universität zu Berlin

Besucheranschrift:
Rudower Chaussee 25, 12489 Berlin
Haus 4, 3. OG

k.thimmaraju@informatik.hu-berlin.de

http://www.ti.informatik.hu-berlin.de