Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBeZX-0000T5-Od for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Feb 2021 14:09:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lBeZW-00037X-Gv for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Feb 2021 14:09:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBeZW-00037Q-9O for pgsql-hackers@lists.postgresql.org; Mon, 15 Feb 2021 14:09:54 +0000 Received: from wforward1-smtp.messagingengine.com ([64.147.123.30]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBeZT-0006CL-3B for pgsql-hackers@postgresql.org; Mon, 15 Feb 2021 14:09:53 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailforward.west.internal (Postfix) with ESMTP id C65F5EBC for ; Mon, 15 Feb 2021 09:09:49 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Mon, 15 Feb 2021 09:09:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=Fuo29TKJfaIFYQGcdKDzmlYbRTjA3 vNCv0lib6OQx8A=; b=rgINJJ3SQFEFS83GXlEN039hbPqOYzXJmu9Wy8qyyKGa5 zKXJDsguNmsLFpGiqAouzXqBD6tDUVlUXmaCkgJGz3IBZwy7aSkuWvQCldRXZWS+ 6kWnUqh9843e2J/iX2UlgFGyATsu67ZYM+uXgpEK77g/sxfqDXiODchw+deVpH4a mGkxCxU/u/33EsJYg9JwCr9T3DNJHvorg56EyG3J9oX897E9A64CrV3A4nW7WBaD j47M1/JHMgjzqYT3Aqi67gielY2l3NKdQyRceYV1d70nQDWKt7Yxv9BpzPgvLbzo uF3RwBirhOCeO81ne8h6PIiCiOWJcUnMSSzDgaEyA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrieekgdehkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffuvfhokffffgggtgesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvg hrnhepgffgjeeuffegfeeikeeggedtkeegledvgefgvdegfefhuddufedtlefgvdfhkedu necuffhomhgrihhnpehpohhsthhgrhgvshhqlhdrohhrghdpfihikhhiphgvughirgdroh hrghdpihgvthhfrdhorhhgnecukfhppeekjedrudejjedrieelrddugedtnecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghish gvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: from april.pezone.net (p57b1458c.dip0.t-ipconnect.de [87.177.69.140]) by mail.messagingengine.com (Postfix) with ESMTPA id 0ED33108005C for ; Mon, 15 Feb 2021 09:09:47 -0500 (EST) From: Peter Eisentraut Subject: SSL SNI To: pgsql-hackers Organization: EnterpriseDB Message-ID: <7289d5eb-62a5-a732-c3b9-438cee2cb709@enterprisedb.com> Date: Mon, 15 Feb 2021 15:09:47 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B778BDAF4BCBA6917647FACF" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------B778BDAF4BCBA6917647FACF Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit A customer asked about including Server Name Indication (SNI) into the SSL connection from the client, so they can use an SSL-aware proxy to route connections. There was a thread a few years ago where this was briefly discussed but no patch appeared.[0] I whipped up a quick patch and it did seem to do the job, so I figured I'd share it here. The question I had was whether this should be an optional behavior, or conversely a behavior that can be turned off, or whether it should just be turned on all the time. Technically, it seems pretty harmless. It adds another field to the TLS handshake, and if the server is not interested in it, it just gets ignored. The Wikipedia page[1] discusses some privacy concerns in the context of web browsing, but it seems there is no principled solution to those. The relevant RFC[2] "recommends" that SNI is used for all applicable TLS connections. [0]: https://www.postgresql.org/message-id/flat/CAPPwrB_tsOw8MtVaA_DFyOFRY2ohNdvMnLoA_JRr3yB67Rggmg%40mail.gmail.com [1]: https://en.wikipedia.org/wiki/Server_Name_Indication [2]: https://tools.ietf.org/html/rfc6066#section-3 --------------B778BDAF4BCBA6917647FACF Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Set-SNI-for-SSL-connections-from-the-client.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Set-SNI-for-SSL-connections-from-the-client.patch" RnJvbSAzZTRhYWU4YjAxYTA1ZmU3ODAxNzY1OWJiM2JlMTk0MmE3ZjFjY2Y1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxNSBGZWIgMjAyMSAxNDoxMToyNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIFNldCBTTkkgZm9yIFNTTCBjb25uZWN0aW9ucyBmcm9tIHRoZSBjbGllbnQK ClRoaXMgYWxsb3dzIGFuIFNOSS1hd2FyZSBwcm94eSB0byByb3V0ZSBjb25uZWN0aW9ucy4K LS0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1cmUtb3BlbnNzbC5jIHwgMTkgKysr KysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1cmUtb3BlbnNzbC5jIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtc2VjdXJlLW9wZW5zc2wuYwppbmRleCA1YjRhNDE1 N2Q1Li42ZTQzOTY3OWU1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1z ZWN1cmUtb3BlbnNzbC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXNlY3VyZS1v cGVuc3NsLmMKQEAgLTEwNjYsNiArMTA2NiwyNSBAQCBpbml0aWFsaXplX1NTTChQR2Nvbm4g KmNvbm4pCiAJU1NMX0NUWF9mcmVlKFNTTF9jb250ZXh0KTsKIAlTU0xfY29udGV4dCA9IE5V TEw7CiAKKwkvKgorCSAqIFNldCBTZXJ2ZXIgTmFtZSBJbmRpY2F0aW9uIChTTkkpLCBidXQg bm90IGlmIGl0J3MgYSBsaXRlcmFsIElQIGFkZHJlc3MuCisJICogKFJGQyA2MDY2KQorCSAq LworCWlmICghKChjb25uLT5wZ2hvc3RbMF0gPj0gJzAnICYmIGNvbm4tPnBnaG9zdFswXSA8 PSAnOScpIHx8IHN0cmNocihjb25uLT5wZ2hvc3QsICc6JykpKQorCXsKKwkJaWYgKFNTTF9z ZXRfdGxzZXh0X2hvc3RfbmFtZShjb25uLT5zc2wsIGNvbm4tPnBnaG9zdCkgIT0gMSkKKwkJ eworCQkJY2hhcgkgICAqZXJyID0gU1NMZXJybWVzc2FnZShFUlJfZ2V0X2Vycm9yKCkpOwor CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCSAg bGlicHFfZ2V0dGV4dCgiY291bGQgbm90IHNldCBTU0wgU2VydmVyIE5hbWUgSW5kaWNhdGlv biAoU05JKTogJXNcbiIpLAorCQkJCQkJCSAgZXJyKTsKKwkJCVNTTGVycmZyZWUoZXJyKTsK KwkJCVNTTF9DVFhfZnJlZShTU0xfY29udGV4dCk7CisJCQlyZXR1cm4gLTE7CisJCX0KKwl9 CisKIAkvKgogCSAqIFJlYWQgdGhlIFNTTCBrZXkuIElmIGEga2V5IGlzIHNwZWNpZmllZCwg dHJlYXQgaXQgYXMgYW4gZW5naW5lOmtleQogCSAqIGNvbWJpbmF0aW9uIGlmIHRoZXJlIGlz IGNvbG9uIHByZXNlbnQgLSB3ZSBkb24ndCBzdXBwb3J0IGZpbGVzIHdpdGgKLS0gCjIuMzAu MAoK --------------B778BDAF4BCBA6917647FACF--