Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hxfED-000689-6s for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Aug 2019 22:25:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hxfEB-0003Le-Tv for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Aug 2019 22:25:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hxfEB-0003Bf-F9 for pgsql-hackers@lists.postgresql.org; Tue, 13 Aug 2019 22:25:15 +0000 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hxfE8-0001iC-Io for pgsql-hackers@postgresql.org; Tue, 13 Aug 2019 22:25:14 +0000 Received: by mail-pg1-x542.google.com with SMTP id x15so41642644pgg.8 for ; Tue, 13 Aug 2019 15:25:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :mime-version:content-transfer-encoding; bh=rvfz7NzWhRQZ6s3dcwoUM2x8y5+wwmHCEUX75N6UrDc=; b=eOp/Lv45VY2kQcgiAJODHIE7A7tyNY0t5ah6Kz3OBLFlg5Eek7W3d3XLihUqkF6ZnD 55o6LjZyOLjPj7tXJVqJwf6jToLnosu4+JOlJdmqxLCJCGw0aBqvaZzaQ3cPodYL8rWW 7duzsmSlZj9vlZBxFl4NcqyqPXM/go8fnNeKLKvGrcCcH5GlaYXTgL5CLebvjn+hA3oR 5kLLnSjNvI45yMAK3Z2NwxNT99sYLpCMpKOfiTxJlqo4Gg56211nZOtOIPXs6wf9+MBw /IT9giM09eq1Op0pyTxw8KUO2QizCO5n8fYPu2g5zYU8/aGn0kpmz/OyOxf/X87OZE1M t5VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=rvfz7NzWhRQZ6s3dcwoUM2x8y5+wwmHCEUX75N6UrDc=; b=URY+LU2vE2xpZhfhcjA16ytid+35VqtW/KyCCPiEcQyJM6dsyf1p/333rKFJLhrpe3 JB9GBzse/4w6q1GzRzXHILRjHTMHk16Y6H0zbZuE6nLUB3b9CfhGwYj3f+NJbXxUdMlh /3rs3AQQwx58nQLTCGfxUP3RHSGXw8BZTvkZcJjgnGTt2Salo7wVaZ4rO7KXz2P2j06b PK4AbiWLSeSA4XXPDV3Nr0wHihsPhEv0fgPQtCCBNM98QpdTLHLshxHa9nhlUDg5Td3P I424CQj18+jhM4CsGQChAj/traIP1amfOzMyIpCoK1gwNmYTdDlAUy70JaxgeQJqLs+r 2EwQ== X-Gm-Message-State: APjAAAX/lQcZ7Z9Rk9reK0WIEAoGsrj0Qmdj5stHGjLOfFMhk5sdAJhr qCi+Bz8F99PmDxoQmi6X75li/Q== X-Google-Smtp-Source: APXvYqyWYkhCW1DUiYnSQaajOl0LD/jG6NJnHa5jyqHjsMQ/WNbdkCRsQNcO4NMpC01deFmnAB733g== X-Received: by 2002:a62:640c:: with SMTP id y12mr42537465pfb.166.1565735109222; Tue, 13 Aug 2019 15:25:09 -0700 (PDT) Received: from jdavis ([2600:1010:b021:cf68:79e8:c09f:28f7:b726]) by smtp.gmail.com with ESMTPSA id o32sm2484647pje.9.2019.08.13.15.25.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 13 Aug 2019 15:25:08 -0700 (PDT) Message-ID: Subject: Re: Add "password_protocol" connection parameter to libpq From: Jeff Davis To: "Jonathan S. Katz" , Michael Paquier , Peter Eisentraut Cc: Stephen Frost , pgsql-hackers@postgresql.org Date: Tue, 13 Aug 2019 15:25:06 -0700 In-Reply-To: <1e34ce7a-9d4c-dd99-3781-e0a3203f5aef@postgresql.org> References: <20190809030021.GG3194@paquier.xyz> <3bbf5968ea705700a2605d6db74d8510bea7940b.camel@j-davis.com> <20190809100922.GI3194@paquier.xyz> <20190809132850.GL16436@tamriel.snowman.net> <609482826475e0063c7d71b2449ae31c0d61b232.camel@j-davis.com> <071e45a6-97f7-1614-371c-98ecb03aed65@postgresql.org> <7a7a2f07-d013-eb80-85ba-9edaaf845038@2ndquadrant.com> <95b40ddcb3897772f075e6891521ee3f06f443d1.camel@j-davis.com> <93653d2b-7cf7-6992-7d3e-600ffd461354@2ndquadrant.com> <20190813025634.GF2551@paquier.xyz> <67726b008fa31d00d9a38257b3d1673b8afff2dd.camel@j-davis.com> <1e34ce7a-9d4c-dd99-3781-e0a3203f5aef@postgresql.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On Tue, 2019-08-13 at 16:51 -0400, Jonathan S. Katz wrote: > Alternatively, we could combine 2 & 3, e.g.: > > channel_binding = {disable|prefer|require} > > # comma-separated list of protocols that are ok to the user, remove > # ones you don't want. empty means all is ok > password_protocol = "plaintext,md5,scram-sha-256,scram-sha-256- > plus" I still feel like lists are over-specifying things. Let me step back and offer an MVP of a single new parameter: channel_binding={prefer|require} And has a lot of benefits: * solves the immediate need to make channel binding useful, which is a really nice feature * compatible with most of the other proposals we're considering, so we can always extend it when we have a better understanding and consensus * clear purpose for the user * doesn't introduce new concepts that might be confusing to the user, like SASL or the use of "-plus" to mean "with channel binding" * guides users toward the good practice of using SSL and SCRAM * simple to implement The other use cases are less clear to me, and seem less urgent. Regards, Jeff Davis