Re: SCRAM with channel binding downgrade attack
Bruce Momjian <bruce@momjian.us>
On Sat, May 19, 2018 at 09:35:57PM +0900, Michael Paquier wrote: > On Fri, May 18, 2018 at 09:30:22AM -0400, Bruce Momjian wrote: > > Good work, but I think the existance of both scram_channel_binding and > > channel_binding_mode in libpq is confusing. I am thinking we should > > have one channel binding parameter that can take values "prefer", > > "tls-unique", "tls-server-end-point", and "require". I don't see the > > point to having "none" and "allow" that sslmode supports. "tls-unique" > > and "tls-server-end-point" would _require_ those channel binding modes; > > the setting would never be ignored, e.g. if no SSL. > > I can see the point you are coming at. Do you think that we should > worry about users willing to use specifically tls-server-end-point > (which is something actually in the backend protocol only for JDBC) and > manage a cluster of both v10 and v11 servers? In this case we assume > that "prefer" means always using tls-unique as channel binding, but > there is no way to say "I would prefer channel binding if available, > only with end-point". It would not be that hard to let the application > layer on top of libpq handle that complexity with channel binding > handling, though it makes the life of libpq consumers a bit harder. This is going to be hard enough so let's do whatever we can to simplify it. > Hence, I would actually eliminate "require", as that would be actually > the same as "tls-unique", and the possibility to use an empty value from > the list of options available but add "none" as that's actually the same > as the current empty value. This gives as list: > - tls-unique > - tls-server-end-point > - none > - prefer, which has the meaning of preferring tls-unique > - And prefer-end-point? But thinking why end-point has been added it > would not be worth it, and for tests only the option requiring end-point > is enough. Since tls-unique and tls-server-end-point provide the same level of security, I don't see any value in allowing prefer-tls-server-end-point, as you stated above. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
Commits
-
doc: update PG 11 release notes
- 6eb612fea9d0 12.0 cited
-
Fix misspelled pg_trgm contrib name in PostgreSQL 11 release notes
- 3abc5a67edfd 12.0 landed
-
Doc: clarify release note text about v11's new window function features.
- 510421c45fb4 11.0 landed
- 11a3aeeb5e17 12.0 landed
-
Improve wording of release notes item
- bee6a683a5c3 11.0 landed
-
Fix typos in release notes
- fb6accd27b99 11.0 landed
-
Doc: preliminary list of PG11 major features.
- 4aad161c9a6d 11.0 landed
-
Make numeric power() handle NaNs according to the modern POSIX spec.
- d1fc750b5199 11.0 landed
-
Various improvements of skipping index scan during vacuum technics
- 8e12f4a250d2 11.0 cited
-
Revert back-branch changes in power()'s behavior for NaN inputs.
- f74d83b3034f 10.4 cited
-
Avoid wrong results for power() with NaN input on more platforms.
- 6bdf1303b34b 11.0 cited
-
Avoid wrong results for power() with NaN input on some platforms.
- 61b200e2f582 11.0 cited
-
Skip full index scan during cleanup of B-tree indexes when possible
- 857f9c36cda5 11.0 cited
-
Rewrite the code that applies scan/join targets to paths.
- 11cf92f6e2e1 11.0 cited
-
Postpone generate_gather_paths for topmost scan/join rel.
- 3f90ec8597c3 11.0 cited
-
Add casts from jsonb
- c0cbe00fee6d 11.0 cited
-
Make plpgsql use its DTYPE_REC code paths for composite-type variables.
- 4b93f57999a2 11.0 cited
-
Don't allow VACUUM VERBOSE ANALYZE VERBOSE.
- 921059bd66c7 11.0 cited
-
Pass InitPlan values to workers via Gather (Merge).
- e89a71fb449a 11.0 cited
-
Account for the effect of lossy pages when costing bitmap scans.
- 5edc63bda68a 11.0 cited
-
Allow no-op GiST support functions to be omitted.
- d3a4f89d8a3e 11.0 cited
-
Rearm statement_timeout after each executed query.
- f8e5f156b30e 11.0 cited
-
Push limit through subqueries to underlying sort, where possible.
- 1f6d515a67ec 11.0 cited