i'm replying to two messages here, one from patrick, one from stephen.
Patrick McManus wrote on 2020-03-10 12:24:
On Tue, Mar 10, 2020 at 2:54 PM Paul Vixie <p...@redbarn.org
<mailto:p...@redbarn.org>> wrote:
httpssvc is not an alternate service description permitting
fallback to the non-alternative; httpssvc is the service
description itself.
7.2. Relationship to Alt-Svc
Publishing a ServiceForm HTTPSSVC record in DNS is intended to be
similar to transmitting an Alt-Svc field value over HTTPS, and
receiving an HTTPSSVC record is intended to be similar to receiving
that field value over HTTPS.
no-one would use this for h3 if that were not the case.
"intended to be similar" is not a specification. it will be possible in
an HTTPSSVC world to put a non-standard port into the RDATA, and to have
a web client contact a web server without ever using TCP port 443. i
know that there is language describing the TCP port 443 fallback, but
there is no way to enforce that. so while an alt-svc meta header might
be equivalent to HTTPSSVC in some logical sense, the HTTPSSVC makes the
TCP port 443 service only-theoretically-required rather than the alt-svc
meta header situation where it is very-definitely-required.
in practical terms, we are headed for a world where a webmaster can
think that non-default port numbers on TCP or on UDP will just work, and
may not have a way to measure the cases where it doesn't work. in
practice (from the client's point of view) those web sites will simply
be black holes. first-mover advantage would determine the long term
outcome. thus my first suggestion was to remove the port number from the
HTTPSSVC RDATA. the pushback was, "this may be useful in clouds where
the default port isn't necessary and won't be used."
so now i'm wondering exactly where to document this well enough that the
TCP port 443 fallback, and a UDP port 443 fallback if HTTP/3 is
available, are always present. because otherwise, anyone surfing from
behind a NAT, ALG, or firewall will be silently removed from the
audience. i hope you'll agree that we should strive together to avoid
that risk. "let the market decide" is not a path to that outcome.
---
Stephen Farrell wrote on 2020-03-10 12:24:>
On 10/03/2020 19:11, Paul Vixie wrote:
On Tuesday, 10 March 2020 19:05:39 UTC Stephen Farrell wrote:
What's the difference between having a port number as part of
HTTPSSVC (or whatever we call it;-) in the DNS and having a web
page on 443 that includes hrefs with https:// schemed URLs that
are not using port 443?
technically, very little. practically, one of them doesn't solve
the problem addressed by ANAME, and the other does.
i apologize for my excessive brevity. the implication i was drawing here
is that the audience for HTTPSSVC includes all ANAME use cases, which is
vastly larger than the audience for ALT-SVC. so a solution which won't
be under-deployed or misunderstood by the ALT-SVC audience might be very
broadly under-deployed or misunderstood by the prospective HTTPSSVC
audience.
Sorry, let me try again. HTTPSSVC might include a port option or not.
If it does, then traffic will use that as the destination port. If it
does not, and someone prefers not to use 443 for their server,
they'll just do one more HTTP roundtrip. (They'll likely need to
support that HTTP 30x anyway for non-HTTPSSVC aware clients).
i agree that support for non-HTTPSSVC aware clients will be important to
webmasters. however, that's a short-term expedient. just as google
periodically declares it will no longer answer requests from browsers
more than a dozen years old, so it will be that technology evolution
will eventually marginalize the importance of non-HTTPSSVC aware clients.
ISTM the end result is the same traffic heading to the non-443
destination port, but, in the 2nd case, with one gratuitous
interaction on port 443.
I don't get why that distinction is meaningful for the operator of
the network containing the browser, which is where I understood your
concern lies.
i'm glad we're discussing this, because the matters at stake here are
both important and subtle. my concern is about configurations which
appear to the webmaster to be functional, including where there is no
fallback service on TCP/443 or UDP/443, but traffic "seems normal", and
the audience who can only reach those "fallbacks" is disconnected. we
know from 25 years of commercialization and privatization that affected
users will complain to their local sysadmins and not the distant
webmasters. that's why the policy of both source and sink are conjoined.
with a non-modal knowledge spectrum among deployers.
I also don't understand what you mean by that last. (I do have a
guess, but not a confident one:-)
better than i explained in the first place than that you have to guess.
(again, my apologies, i fought the words, and this time i won so they lost.)
ALT-SVC deployers are mostly experts. they read documentation and
specifications; they understand what's going on, and they know what are
the implications of any shortcut they may make. especially, they know
which shortcuts would bypass unenforceable norms, and they pay special
attention to those.
HTTPSSVC deployers will not mostly be experts. some will be, but the
spectrum from low expertise to high expertise will be fairly even. we
should therefore as we specify and as we document, remove features which
may lead to confusion and finger-pointing, or where removal is not
possible, we should try to add enforcement mechanisms so that any
failure to observe norms will be quickly apparent to the team who can do
something about it. if neither removal nor enforcement are possible,
then we should figure out how our messaging will limit these risks.
===
for context, i surf the web from beyond its horizon. there is always
either a NAT, an ALG, or a firewall, or all three, between my sensitive
personal information and the outside world. this is true for a lot of
power users and their families, and for most private corporate networks,
and for all sensitive (military or intelligence) networks.
because QUIC is designed to be unidentifiable according to...
https://tools.ietf.org/html/draft-ietf-quic-manageability-06#section-3
....i am very concerned that my only way to enforce policy in an HTTP/3
world will be to send everything through an ALG (so, an HTTPS or SOCKS
proxy). this would be a privacy nightmare that i'll go to some expense
to avoid. i plan therefore to permit UDP/443 anywhere i currently permit
TCP/443, blocking only those server IP's also known to support DoH or
some other policy-violating service such as hosting drive-by malware or
content which is illegal in my jurisdiction or which violates regulatory
policy for my industry.
this means i really need your proposed norm where TCP/443 is always
available as a fallback, to remain true not just in the short term, but
for the indefinite future. removing the port number from the HTTPSSVC
RDATA is one way to do that, since the ALT-SVC meta headers would then
only be ineffect if the webmaster _does_ run an TCP/443 service. if the
HTTPSSVC team thinks that the port# parameter is vital, i can hardly
argue that you're wrong. but i will ask for help finding other ways to
avoid disenfranchisement of users on managed private networks.
thank you for reading what feels like a very overlong response.
--
P Vixie
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop