-
Notifications
You must be signed in to change notification settings - Fork 523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
It's investigation time! HTTP/2, AltSvc and SSL #548
Comments
When I say closely related, I mean that they may be required, either technically or for any speed improvement (which IMO is the only reason for this). While HTTP2 allows for HTTP in the spec, it is not supported by the browsers, so for all intents and purposes, SSL is always used https://en.wikipedia.org/wiki/Http2#Encryption
|
Part 1: get an definitive answer if SSL session ids are required
Tor's IRC channel (but be prepared to lurk in there, it's not like users watch/read it 24/7). I also have a "direct line" to Arthur & Tom. They tolerate me, but I feel like I must be a bit of a pest to them at times. They seem to be generous and never ignore me, but I do limit my pestering, as I know they are super busy. I guess we should inspect the technical documents, or ask on a reddit /networking thread or something. Even r/tor . Part 2: ask Firefox to reduce the SSL session id time (see email pic in previous post) The thing is Tor doesn't really care about the length of these ssl session ids. If they are required (and TBB flipped all three for a reason), then because Firefox doesn't protect from it via new identities/circuits/nodes/guards or whatever you want to call it (like tor does), then we would have to appeal to Mozilla PS: it would be nice to know or confirm if temporary containers wipe ssl session ids |
Ignore that. If using TC, then each (new) container (contextid) already isolates them. Still would be nice to know if the API also includes this
So does this API cover SSL session ids (edit: for those cases where you keep/re-use a container) |
@Thorin-Oakenpants Part 2 : Tom Ritter mentioned we should be asking Mozilla, and I read you weren't keen on opening a ticket yourself. Would you like me to open one with our current questions and your suggestions from the mail? On the matter of your "direct line", I completely understand you'd rather use it as little as possible, no worries there, we'll find the solution(s ?) together! |
WTF is that?
He is Mozilla :) Ethan's team is the Tor Uplift team, and since my proposals go beyond that, then all he was saying is that we would have to appeal to the higher ups. I see no problem with any of my logic - reducing to 30 or 60 minutes as per other major browsers. The problem then becomes getting RFP or PB teams interested in reducing it to 10 minutes or even less (I want a pref and I can which I can set to 1 minute). And none of them are interested. PB mode because all data is destroyed on session end, and their mandate (despite the name) is not leaving persistent local data. And RFP because they have FPI. And Tor, because they are using a different protocol that changes nodes frequently and also have FPI. And all of them will say, but its a SSL session id, so closing the browser always clears it. So having said all that, I don't think it's even worth my time to try and convince anyone. Reducing it to 30 or 60 minutes would be cool, but not enough to justify using it (for myself), and after that no one F cares So it wasn't that I wasn't keen to open a ticket, but that by getting Tom to open it instead gives it more weight - but that didn't happen. As for you opening a ticket, I would rather you didn't. It needs to be worded correctly or it'll just get shut down. We don't need to ask questions, or mention RFP or PB mode - we aiming at a difference audience now. IF it was to happen, then after it lands, then we push for MOAR in RFP/PB mode. Let's chew on it for a while. |
I'm waiting to get the answers to my last questions, feel free to suggest what I should ask if something bugs you. From what I understand, those three protocols (HTTP/2, AltSvc, SSL Tickets IDs) are safe with FPI enabled, and even if first parties have access to the tickets, even TBB doesn't do anything against that (nothing is done every ten minutes when it comes to them, no deleting, no change of ID, even the change of node doesn't affect them), they just suggest to use the new identity feature once in a while, which would translate into closing FF sometimes for us.
|
@Thorin-Oakenpants OFTC is the IRC to contact the Tor devs, at least that's what's written on their official contact page. |
Nope. If the session id hasn't expired, then you can be tracked by it. No one seems to give a F about repeat first party visits. Example:
So seems even TBB don't give a sh^t unless you specifically request a new identity. I can't understand why there isn't a pref to set max lifetime to 1 or 10 minutes |
I see no problem with making HTTP2 and AltSrv inactive, but session tickets remain a mess. We don't want half measures, we want proper solutions and expect worst case scenarios in our thinking. Seriously, I would have to close my FF and my 4 or 5 tabs, and lose my train of thought/work .. just to clear session ids. Bollocks. We need a better solution than "oh but FPI". We have a better solution, just using a different OA: TC (temporary containers) Would making those two inactive make a speed diff? Probably. Wait and see what Geko says. Or find me some sites and I'll do some bullshit perf testing |
100% agreeing with you, I underestimated the tracking potential, also I get how having to close your browser all the time for privacy would be a pain in the bum, didn't think about it that way, sorry about that. |
The only reasons to enable all this is for speed and compatibility. If there's no real speed diff (without session ids) then what's the point. As for HTTP2-only sites, IMO they would be super rare. Any site that did that would be shooting themselves in the foot. We could probably sit on this for a couple of years with no issues.
GeKo said yes. Waiting on his answer re any speed improvements. Look, I'd read somewhere that the speed increases are quite good overall. A lot of 30%'s thrown around in some real world tests (nah, can't find the sources, it's all in my head). And, i think, now over 50% of the top x sites are HTTP2 compliant (see Scott Helme's Alexa 1M 6 monthly scrapes). So it's definitely something to consider. |
He didn't send me anything since what I copied-pasted for you, so I sent him another message, I'm in wait of his answer. :)
According to GeKo, they aren't anymore, seems like they're becoming a thing, but I still get your point. We're left waiting for an answer regarding speed without SSL tickets, and then we'll be able to close this one! 🎉 |
P.S.: You mentionned TC, what do they bring that normal containers wouldn't? |
OA = Origin Attributes. There are three types: FPI, PBmode, containers. Almost everything is tagged with these (not everything, but they're getting there). And they can be combined (except containers can't be used in PB mode) If you open a PB window, everything in it and subsequent PB windows until all PB windows are closed, are the same OA. So this would allow cross-domain "contamination". Each container you set up has a unique id (eg contextId=1). But you can re-use them, eg the default four that come shipped with FF. Each container is isolated - but allows cross-domain contamination: eg a google container that allows gmail+google+youtube+gstatic+googlefonts etc. You can combine this with FPI, but until FF is closed, SSL session ids would remain If you use FPI, then everything is tied to the top domain A TC is one where every new tab gets a brand new OA. i.e contextId=lastone+1. So every new tab is isolated from all other tabs. note: SSL session ids are OA'ed (we should check that it isn't just FPI but also ContextId and PBmode!) |
I wanted this extension to be useless, I really did, but it's not and now I'm going to have a new one, I hate great devs. |
Just interfering to make sure I get your comments correctly. So we'd have at this time, Consider commenting 702
Consider commenting 703
Keep disabling session ticket
That's what I'm doing. Commenting 702 & 703 but not 1203. |
@StanGets We should add the comment I suggested to push users to enable FPI when they use these protocols. |
@aeriem provided FPI is enabled, of course; that was mentioned at the very start. I have FPI enabled so I forgot to recall this correlated setting. Concerning session tickets I do rely on @Thorin-Oakenpants comment above:
Just trying to follow your expert comments. Thanks. |
@StanGets No worries ! HTTP/2 will work without SSL tickets, this is in the specs of the tech, @Thorin-Oakenpants said so and linked some doc to prove it. What we don't know is the actual speed benefits from HTTP/2 when they are disabled, because some of those benefits rely on keeping those tickets a long period of time to avoid doing complex mathematical calculus each time you reach a website. |
We would create an FPI Alts section
In my head I've always thought that HTTP2 would involve less negotiation (multiplexing?) etc as that would be a bottleneck - IANAExpert
But HTTP1.1 also uses session ids, so that's not the point of difference. Q.E.D. |
This comment has been minimized.
This comment has been minimized.
FPI is so powerful, it's one of those most valuable settings. @aeriem ,
Which means disabling session IDs has no issue but could have an impact over time on the effectiveness of HTTP/2 enabled speed increase. This is complex. |
Lets clarify this
I said the HTTP2 spec allowed for unsecure connections (i.e HTTP) but that the major browsers will only support it over secure connections (HTTPS) and what I linked to was wikipedia and it's sources. I did not link to anything that said HTTP2 in FF works without SSL session tickets. Only Geko said that. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@Thorin-Oakenpants There you go! 😄 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Nothing new in my IDB storage. I have an application set to react on user chosen modified folders/files (Folder Monitor) and it's set by me to yell when my FF IDB / default gets new visitors. Quiet until now, unless the IDB would get impacted in the temporary section .... Polar bears, ok. As long as my ignorance was only related to something I hadn't read then it's not problematic :=) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Should I stay or should I go ... (nice song). As I said, only testing 702 & 703 as commented (disabled). Not sure I keep on testing, no need to be an expert to understand that there is too much uncertainty to consider at this time http/2 and AltSrv as more likely to be viable than not. |
Think about PRISM's environmental impact!
I disagree! 😮 |
As a side note, know that I'm stating my ideas because I want to discuss them with you but I am in no way saying I'm absolutely right and trying to force a change onto the user.js! Don't interpret my "strongly believe" as me telling you what to do, I'm just passionately discussing the matter with you! 🤣 This is a template we are trying to design with a particular audience in mind, but I can adapt it to my needs through an override and as such would never try to impose my will onto this super great project! |
@aeriem I'm continuing the testing (702 & 703 commented) but if the price is IDB invasion then i'll know where to revert. Uncertainty doesn't mean I've chosen but only that I'm not as convinced as I was a few lines above. I understand you disagree. I'm practical moreover because i ignore : if i notice speed enhancement and no side-effect such as an impact on my IDB or localStorage then I'll carry on! |
I feel fulfilled now. |
@StanGets Keep us posted about iDB invasion, it's very interesting! @claustromaniac Finally! 😄 @Thorin-Oakenpants Don't worry, I'll only feed him more code to crunch. |
Not sure if I'm half-on or half-off topic but I have a question regarding TLS settings involving 3 settings available in user.js but not a fourth. We mentioned above the Session Identifiers complexity. I was searching on this topic and found an article posted Nov 14, 2018, SuperCooKey - A SuperCookie Built Into TLS 1.2 and 1.3 The author describes his research around the impact of TLS 1.3 for Private Internet Access and proposes 4 Firefox settings: security.ssl.disable_session_identifiers (hidden feature) : we have it at 1203 security.ssl.enable_false_start by default is true on FF63 at least. I have it true as well. The author mentions,
Simple question : Should this setting be included and set to false accordingly? |
@StanGets - see #536 |
Thanks, @Thorin-Oakenpants The problem with GitHub is that it's not possible to search terms within the issues, only code.
Bothers me as much as it may bother you or anyone giving the direction. Thanks, #536, noted. |
searching works fine for me. It says it can't find any CODE ... you just need to look on the left and you will see it has a counter for Issues |
Got it, thanks again @Thorin-Oakenpants |
@aeriem thank you very much for getting us some quality answers from GeKo!
and then there's multiplexing which AFAIK can also mean potentially using the same connection for different domains. |
somewhat related: the risk for replay attacks with 0-RTT is also pretty low because FF only uses it for GET, HEAD and OPTIONS requests and the performance benefits are probably higher than H1 vs H2. |
I know it's up to everyone to make and assume his choices and I'm no exception. Nevertheless may I ask you, @earthlng , if you will keep 702 & 703 as they are now (disabled, that is not commented) or if you'll dive whatever the multiplexing which is behind and which has all my attention? Just to know, I won't go around saying, writing "earthlng this, earthlng that' :=) |
FYI: Remember those annoying JS-enforcing captchas when trying to access one of the couple millions of CF-protected pages over Tor? They're now gone (for the most part) because tor implemented something that lets CF (and everyone else) identify tor clients by a channel-id. Plus, thanks to H2+AltSvc, CF customers can enable an option (default is enabled if I remember correctly) to redirect tor users to an onion address for their site (hosted by CF of course). But the captchas are gone regardless of whether H2+AltSvc are enabled or not |
@StanGets I'll keep H2+AltSvc disabled, at least for now. I dislike H2 in general. It didn't solve anything that couldn't have been done in a better way with just H1 and without all the unnecessary shit. Instead it introduced new problems and in some aspects is just straight up worse. see fe http://blog.gfader.com/2017/05/5-things-i-learned-about-http2-in.html and also this again: https://queue.acm.org/detail.cfm?id=2716278
|
I've just read the two articles you mentioned, @earthlng . Impressive. As many of us but certainly not as all I favor security, then privacy (though both are often tied), and speed only after. If disabling HTTP2 and AltSrv has no impact on security & privacy (and from what I've read in those articles as well as here and elsewhere it'd rather be the opposite) but only on a slight speed improvement (and yet, depending on the servers) then I couln't consider an intellectual/psychological addiction to modernism as a valid reason to honor http2 and AltSrv blindly. Unfortunately I'm far from knowing enough in this networks area to take some decisions fully aware of their implications, so I guess I'll rely on the opinion of those who obviously have a stronger background than mine, staying tuned to read their opinions throughout time. All this is so complex. Thanks for sharing and of course thanks for your user.js (which started it all) and its continuation within this repository. Some of us don't see the iceberg, some see it and believe it's all in what they see, and once you dig (or dive) you realize the immensity of what is below. |
@earthlng You're most welcome, I'm really glad I got to help out a bit! Never hesitate to ask me when I can do such simple things. It's really a time issue, which you both lack, with @Thorin-Oakenpants. |
Earthlng
Me
and just for good measure, hackerfactor
I really don't think compat is an issue, not for years, if not a decade |
@aeriem - thanks for digging into this and chatting with GeKo. It certainly enlightened me as to how Tor Browser model the threat - I never knew they didn't auto-New Identity after x time, but I did know that they have relaxed "standards" over session data. From lots of previous reading etc, I know that FPI is their holy grail and they want to enable third party cookies, etc - because they are relying on the Tor protocol and that in itself, that is anonymized web traffic. Still ... they don't seemed concerned about session data. I'll close this: As said elsewhere, I have my own mechanism to chase up on and try to affect a SSL session id expiry better than 24 hours. The problem is they have no API/ internal call for it (from reading open bugzillas from 5-10 years ago). NFI how they expire it after 24 hrs then! The info & discussion gained from here will be input into #571 Thanks creepy stalker guy 💋 |
TBB enabled both HTTP/2 and Alternative Services on the release channel in September, following two audits : HTTP/2 and AltSvc.
It is indicated that these protocols no longer pose a threat to privacy when FPI is enabled.
Therefore, I suggest we consider commenting the related prefs (
0702
,0703
) and add a warning that they need FPI enabled to be safe, privacy-wise.However, @Thorin-Oakenpants 👖 raised a fair point in #107:
As the title states, it's investigation time!
Does anyone know who we could reach out to to get an answer?
Could some experts share their insights on the matter?
P.S.: Now THIS would be a perfect issue for your "NEEDS JESUS" label, @claustromaniac! 🐈
Also, can I add the "help wanted" label or that restricted to the big E and 👖 ?
The text was updated successfully, but these errors were encountered: