You may be interested in our paper "HSTS Supports Targeted Surveillance"
that we will present at FOCI next week
https://www.usenix.org/conference/foci18/presentation/syverson
Amongst other things, it discusses some of the issues raised in this thread.

They will post the paper on Tuesday, but if someone wants a copy now,
let me know.

aloha,
Paul

On Wed, Aug 08, 2018 at 02:32:10PM -0400, Kevin Flowers wrote:
> Have you thought about running your own email server. 
> 
> -----Original Message-----
> From: tor-talk [mailto:tor-talk-boun...@lists.torproject.org] On Behalf Of 
> Need Secure Mail
> Sent: Wednesday, August 8, 2018 12:28 PM
> To: tor-talk@lists.torproject.org
> Subject: Re: [tor-talk] HSTS forbids "Add an exception" (also, does request 
> URI leak?)
> 
> On August 8, 2018 1:57 PM, Matthew Finkel <matthew.fin...@gmail.com> wrote:
> 
> > Right. This is the recommendation in the RFC [0]. It would be 
> > counter-productive if the webserver informed the browser that the 
> > website should only be loaded over a secure connection, and then the 
> > user was given the option of ignore that. That would completely defeat 
> > the purpose of HSTS.
> >
> > [0] https://tools.ietf.org/html/rfc6797#page-30
> > Section 12.1
> 
> Thanks, I was already quite familiar with the RFC. I know its rationale.
> 
> But it is an absolute rule that *I* get the final word on what my machine 
> does. That is why I run open-source software, after all. I understand that 
> most users essentially must be protected from their own bad decisions when 
> faced with clickthrough warnings. I have read the pertinent research. It's 
> fine that the easy-clickthrough GUI button is removed by HSTS. However, if 
> *I* desire to "completely defeat the purpose of HSTS", then I shall do so, 
> and my user-agent shall obey me. I understand exactly how HSTS works, and I 
> know the implications of overriding it.
> 
> >> This error made me realize that Tor Browser/Firefox must load at 
> >> least the response HTTP headers before displaying the certificate 
> >> error message. I did not realize this! I reasonably assumed that it 
> >> had simply refused to complete the TLS handshake. No TLS connection, no 
> >> way to know about HSTS.
> >
> > Why? There are three(?) options here:
> >
> > 1) The domain is preloaded in the browser's STS list, so it knows 
> > ahead of time if that site should only use TLS or not.
> 
> Although I did not check the browser's preload list, I have observed this on 
> a relatively obscure domain very unlikely to be on it...
> 
> > 2) The domain is not in the preloaded list, so the browser learns 
> > about the website setting HSTS on its first successful TLS connection 
> > and HTTP request.
> 
> ...as to which I had never yet successfully made a TLS connection in that 
> temporary VM, with a fresh Tor Browser instance which had never before 
> visited *any* sites...
> 
> > 3) The user previously loaded the site and the browser cached a STS 
> > value for that domain.
> 
> ...and thus of course, could not save anything from previous loads of the 
> site. My whole browsing setup is amnesiac. I literally use a new VM with 
> "new" Tor Browser installation for each and every browsing session. No cached 
> STS value!
> 
> >> Scary. How much does Tor Browser actually load over an 
> >> *unauthenticated* connection? Most importantly, I am curious, does it 
> >> leak the request URI path (including query string parameters) this 
> >> way? Or does it do something like a `HEAD /` to specifically check 
> >> for HSTS? No request headers, no response headers, no way to know 
> >> about HSTS. Spies running sslstrip may be interested in that.
> >
> > No? This was one of the main goals of HSTS. It should prevent SSL 
> > stripping (for some definitions of prevent).
> 
> Key phrase: "for some definitions of prevent".
> 
> Inductive reasoning: For a site not in the STS preload list and never before 
> visited, the only means for the user-agent to know about STS is to receive an 
> HTTP response header. The only means to receive an HTTP response header, is 
> to send HTTP request headers. Assume that the browser does not make an HTTP 
> request. How does it know that the site uses STS?
> 
> The HTTP request headers themselves may be useful to spies. Without the 
> request headers, a network evesdropper only knows the hostname of the request 
> (via SNI, RFC 6066). With the request headers:
> 
> 0. The request path informs the evesdropper about which news articles I am 
> reading on www.newspaper.dom, which people I communicate with on 
> www.socialmedia.dom, etc.
> 
> 1. Query string parameters, if any, are exposed. On many sites, this can be a 
> severe privacy problem. On some (badly-designed) sites, it can also be a 
> security issue.
> 
> 2. Some browser fingerprint information is exposed. This is a lesser issue 
> with Tor Browser requests from a Tor exit; any tcp/443 traffic from a Tor 
> exit can be presumed Tor Browser unless demonstrated otherwise. However, the 
> principle with TLS should be: Do not expose anything on the network which is 
> not exposed by TLS itself (or lower network layers).
> 
> The most sensitive information is the request path. If the user-agent wishes 
> to ascertain HSTS status upon a certificate validation error, it could 
> perform a fake `HEAD /` request as I suggested upthread; indeed, it is only 
> means of receiving an HSTS response header without potentially leaking the 
> request path to an sslstripper. I do not know if Tor Browser already does 
> this, and have not checked too carefully. I did glance back through RFC 
> 6797's advice to implementors, and saw nothing about this issue.
> 
> > I'm also not sure if you're referring to public key pinning, as well.
> 
> No, I am referring only to HSTS. I have read both RFCs. I would not confuse 
> them.
> 
> I would *not* override a HPKP pin, unless I saw it very well-documented that 
> a site had committed "pin-suicide". My interest in this thread is overriding 
> HSTS, due to the issue raised by nusenu on the parent thread. There exist 
> sites with valid certificates, which are inaccessible in Tor Browser due to 
> omission of a needed intermediary cert in the cert chain set in the webserver 
> configuration. If the site uses HSTS, there is no supported means to override 
> this -- only the semi-undocumented trick I disclosed upthread.
> 
> ----
> 
> P.S., my apologies to the list that Protonmail stripped all In-Reply-To and 
> References headers when I changed the subject line. Aargh. I need to get back 
> to my normal mail client... See also:
> https://lists.torproject.org/pipermail/tor-talk/2018-August/044380.html
> 
> Sent with ProtonMail Secure Email.
> -- 
> tor-talk mailing list - tor-talk@lists.torproject.org
> To unsubscribe or change other settings go to
> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk
> 
-- 
tor-talk mailing list - tor-talk@lists.torproject.org
To unsubscribe or change other settings go to
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk

Reply via email to