Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rz2SS-001ccB-Ev for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Apr 2024 22:48:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rz2SQ-001pd2-0a for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Apr 2024 22:48:18 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rz2SP-001pcu-FT for pgsql-hackers@lists.postgresql.org; Mon, 22 Apr 2024 22:48:17 +0000 Received: from lahtoruutu.iki.fi ([2a0b:5c81:1c1::37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rz2SH-0049sw-Pg for pgsql-hackers@lists.postgresql.org; Mon, 22 Apr 2024 22:48:16 +0000 Received: from [192.168.1.115] (dsl-hkibng22-54f8db-125.dhcp.inet.fi [84.248.219.125]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4VNgPw2Hwkz49Pyl; Tue, 23 Apr 2024 01:48:04 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1713826084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=9itLN84+tQ/iBS1GMhVsWEIK76PVpPnLUM+2UGuASak=; b=B8vElhXRvSQEVyNR2z14gQgkABHhxSKaI9Uj96voHFr+YRFfKU/EK3kNOnspwBqBE6+7dZ sLJJaZ0vrbUd3wlIKNQiODDX4s++kcHo0ahXsc9+rwd5sLFud+VzQXzb/7z19uOi0gvWIE Ynf9kf8hNfUrSuiFdMVdw2ar8yk3lTw6m+5bCPZLqubflTGbbwLKMgVkXFWNjMfmN0r3ol r8fgr5gkkWPDBqOTWBNfz/cWJoVhZnZVLPMu1cYFIj6Rf2oxw2jDVTeqS1gcsvACtPc9DG eVnUrEb8slPQtu+UfBctSn9b9/kvESeeGlQIXRoL5tHdKkEg8uNbbp3jljxiqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1713826084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=9itLN84+tQ/iBS1GMhVsWEIK76PVpPnLUM+2UGuASak=; b=rX4JB+SrqqBUSun63TQ6hPJ6jqlupD00JRYDRf9EbhYKy5WwsmJyQz96V7zy4ijRH5A/Pq d4FahKfQKbR/thkFYfeNtLkOuBeR+XT1U1VuwgsMyg9wQONfLw0ygj3uKdVda+OssLgWsj n+L6zuXsQlDim04AHi/cBWsXFGqc5b0tFhI1rAc0HU9X2CezJM76Ykr72XvK6hLQ1RRb68 Vmiw9dNeW9puhCLvyM1IvdyFlf9D25nDereZGtnp/KSBt8K+l65zAll9daN2CKrb10lhw2 bK/86GbmqIWP9/vorMvDQzC9+vlAzcHGxoJl1mA7Tf7W4yrqsTgGs8ERiLAzCw== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Seal: i=1; s=lahtoruutu; d=iki.fi; t=1713826084; a=rsa-sha256; cv=none; b=nuPOBFuQcNdEXxKsrmn8uurDDftI+1GxfeWs0QG2t2vgMT6DRD22V2HLBMEHN+Nx/bbHyM BtyuHDrtqdJD5HZZRFQeMZzyVkfX9RnT3CSSsFaSwXyq3QHvaZ0D5w+yDo2VJIan3ihk4/ EmjR9UQkKcrckq62HcjhT1uDeiC4T+u/4l/AoJIXJ7iHBpT2orV9bb055GcJNMZY/CndwD CvQ/3c9CviK4++56TcAsiJ0FmBnRELEQjMAtj726TnZEhu2KZO8lo8qetVCga+szqEbUJa DiZMdc1VkTJyKAasnYkA2BWGdwCgIe0JAuS9twjhRQVCzwcMh03L5M+P+0SGdA== Content-Type: multipart/mixed; boundary="------------4WbehFBKBq0gNcVHMYNMfthJ" Message-ID: Date: Tue, 23 Apr 2024 01:48:04 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Direct SSL connection with ALPN and HBA rules From: Heikki Linnakangas To: Michael Paquier Cc: Jacob Champion , Postgres hackers References: Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------4WbehFBKBq0gNcVHMYNMfthJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 22/04/2024 10:47, Heikki Linnakangas wrote: > On 22/04/2024 10:19, Michael Paquier wrote: >> On Sat, Apr 20, 2024 at 12:43:24AM +0300, Heikki Linnakangas wrote: >>> On 19/04/2024 19:48, Jacob Champion wrote: >>>> On Fri, Apr 19, 2024 at 6:56 AM Heikki Linnakangas wrote: >>>>> With direct SSL negotiation, we always require ALPN. >>>> >>>> (As an aside: I haven't gotten to test the version of the patch that >>>> made it into 17 yet, but from a quick glance it looks like we're not >>>> rejecting mismatched ALPN during the handshake as noted in [1].) >>> >>> Ah, good catch, that fell through the cracks. Agreed, the client should >>> reject a direct SSL connection if the server didn't send ALPN. I'll add that >>> to the Open Items so we don't forget again. >> >> Would somebody like to write a patch for that? I'm planning to look >> at this code more closely, as well. > > I plan to write the patch later today. Here's the patch for that. The error message is: "direct SSL connection was established without ALPN protocol negotiation extension" That's accurate, but I wonder if we could make it more useful to a user who's wondering what went wrong. I'd imagine that if the server doesn't support ALPN, it's because you have some kind of a (not necessarily malicious) generic SSL man-in-the-middle that doesn't support it. Or you're trying to connect to an HTTPS server. Suggestions welcome. -- Heikki Linnakangas Neon (https://neon.tech) --------------4WbehFBKBq0gNcVHMYNMfthJ Content-Type: text/x-patch; charset=UTF-8; name="require-alpn-in-direct-mode.patch" Content-Disposition: attachment; filename="require-alpn-in-direct-mode.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwppbmRleCBlYzIwZTNmM2E5Li5mOTE1NmUy OWNhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCkBAIC0zNTI0LDYgKzM1MjQs MTMgQEAga2VlcF9nb2luZzoJCQkJCQkvKiBXZSB3aWxsIGNvbWUgYmFjayB0byBoZXJlIHVu dGlsIHRoZXJlIGlzCiAJCQkJcG9sbHJlcyA9IHBxc2VjdXJlX29wZW5fY2xpZW50KGNvbm4p OwogCQkJCWlmIChwb2xscmVzID09IFBHUkVTX1BPTExJTkdfT0spCiAJCQkJeworCQkJCQkv KiBBTFBOIGlzIG1hbmRhdG9yeSB3aXRoIGRpcmVjdCBTU0wgbmVnb3RpYXRpb24gKi8KKwkJ CQkJaWYgKGNvbm4tPmN1cnJlbnRfZW5jX21ldGhvZCA9PSBFTkNfRElSRUNUX1NTTCAmJiAh Y29ubi0+c3NsX2FscG5fdXNlZCkKKwkJCQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgImRpcmVjdCBTU0wgY29ubmVjdGlvbiB3YXMgZXN0YWJsaXNoZWQgd2l0 aG91dCBBTFBOIHByb3RvY29sIG5lZ290aWF0aW9uIGV4dGVuc2lvbiIpOworCQkJCQkJQ09O TkVDVElPTl9GQUlMRUQoKTsKKwkJCQkJfQorCiAJCQkJCS8qCiAJCQkJCSAqIEF0IHRoaXMg cG9pbnQgd2Ugc2hvdWxkIGhhdmUgbm8gZGF0YSBhbHJlYWR5IGJ1ZmZlcmVkLgogCQkJCQkg KiBJZiB3ZSBkbywgaXQgd2FzIHJlY2VpdmVkIGJlZm9yZSB3ZSBwZXJmb3JtZWQgdGhlIFNT TApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtc2VjdXJlLW9wZW5zc2wu YyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXNlY3VyZS1vcGVuc3NsLmMKaW5kZXggZTdh NGQwMDZlMS4uOGRmM2M3NTFkYiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtc2VjdXJlLW9wZW5zc2wuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1zZWN1 cmUtb3BlbnNzbC5jCkBAIC0xNTg1LDYgKzE1ODUsMzEgQEAgb3Blbl9jbGllbnRfU1NMKFBH Y29ubiAqY29ubikKIAkJfQogCX0KIAorCS8qIEdldCB0aGUgcHJvdG9jb2wgc2VsZWN0ZWQg YnkgQUxQTiAqLworCXsKKwkJY29uc3QgdW5zaWduZWQgY2hhciAqc2VsZWN0ZWQ7CisJCXVu c2lnbmVkIGludCBsZW47CisKKwkJU1NMX2dldDBfYWxwbl9zZWxlY3RlZChjb25uLT5zc2ws ICZzZWxlY3RlZCwgJmxlbik7CisKKwkJLyogSWYgQUxQTiBpcyB1c2VkLCBjaGVjayB0aGF0 IHdlIG5lZ290aWF0ZWQgdGhlIGV4cGVjdGVkIHByb3RvY29sICovCisJCWlmIChzZWxlY3Rl ZCAhPSBOVUxMKQorCQl7CisJCQlpZiAobGVuID09IHN0cmxlbihQR19BTFBOX1BST1RPQ09M KSAmJgorCQkJCW1lbWNtcChzZWxlY3RlZCwgUEdfQUxQTl9QUk9UT0NPTCwgc3RybGVuKFBH X0FMUE5fUFJPVE9DT0wpKSA9PSAwKQorCQkJeworCQkJCWNvbm4tPnNzbF9hbHBuX3VzZWQg PSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4g Ki8KKwkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiU1NMIGNvbm5lY3Rpb24g d2FzIGVzdGFibGlzaGVkIHdpdGggdW5leHBlY3RlZCBBTFBOIHByb3RvY29sIik7CisJCQkJ cGd0bHNfY2xvc2UoY29ubik7CisJCQkJcmV0dXJuIFBHUkVTX1BPTExJTkdfRkFJTEVEOwor CQkJfQorCQl9CisJfQorCiAJLyoKIAkgKiBXZSBhbHJlYWR5IGNoZWNrZWQgdGhlIHNlcnZl ciBjZXJ0aWZpY2F0ZSBpbiBpbml0aWFsaXplX1NTTCgpIHVzaW5nCiAJICogU1NMX0NUWF9z ZXRfdmVyaWZ5KCksIGlmIHJvb3QuY3J0IGV4aXN0cy4KQEAgLTE2MzIsNiArMTY1Nyw3IEBA IHBndGxzX2Nsb3NlKFBHY29ubiAqY29ubikKIAkJCWNvbm4tPnNzbCA9IE5VTEw7CiAJCQlj b25uLT5zc2xfaW5fdXNlID0gZmFsc2U7CiAJCQljb25uLT5zc2xfaGFuZHNoYWtlX3N0YXJ0 ZWQgPSBmYWxzZTsKKwkJCWNvbm4tPnNzbF9hbHBuX3VzZWQgPSBmYWxzZTsKIAogCQkJZGVz dHJveV9uZWVkZWQgPSB0cnVlOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCmlu ZGV4IDM2OTFlNWVlOTYuLmE2NzkyOTE3Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2xpYnBxLWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWlu dC5oCkBAIC01NjksNiArNTY5LDcgQEAgc3RydWN0IHBnX2Nvbm4KIAlib29sCQlzc2xfaGFu ZHNoYWtlX3N0YXJ0ZWQ7CiAJYm9vbAkJc3NsX2NlcnRfcmVxdWVzdGVkOyAvKiBEaWQgdGhl IHNlcnZlciBhc2sgdXMgZm9yIGEgY2VydD8gKi8KIAlib29sCQlzc2xfY2VydF9zZW50Owkv KiBEaWQgd2Ugc2VuZCBvbmUgaW4gcmVwbHk/ICovCisJYm9vbAkJc3NsX2FscG5fdXNlZDsJ LyogRGlkIHdlIG5lZ290aWF0ZSBhIHByb3RvY29sIHdpdGggVExTIEFMUE4/ICovCiAKICNp ZmRlZiBVU0VfU1NMCiAjaWZkZWYgVVNFX09QRU5TU0wK --------------4WbehFBKBq0gNcVHMYNMfthJ--