Protecting Netflix Viewing Privacy at Scale
techblog.netflix.com
techblog.netflix.com
However, I'm quite surprised Netflix went with Intel's ISA-L library for AES-GCM given Intel's perf gains were so very marginal compared to BoringSSL. I would have gone with the library that had more eyeballs on it, and in general I'd give Google the edge over writing solid, secure code than I would Intel.
ISA-L: There will be some more recent results presented next week at IDF: http://myeventagenda.com/sessions/0B9F4191-1C29-408A-8B61-65...
Hacking sendfile:
Note that only the bulk encryption for a limited number of ciphers is done in the kernel. All the TLS setup still happens in the userspace SSL library. So the kernel part is quite small. So it is more like hacking the bulk encryption into the kernel, not the entire library.
I'm afraid that most of the interesting "configuration" is to run patched kernel (async sendfile vs aio + sendfile, tls sendfile vs read/encrypt/send, etc). Of course, I work on the kernel, so I'm biased :)
Do you have any idea if or when Netflix plans on open sourcing tls sendfile?
1) Expose ISPs who limit your bandwidth to the service. 2) Protect against manipulation/degradation of the video stream quality.
I suspect netflix still has limited source IPs. If you see netflix like steady bandwidth from a known netflix IP, pretty sure it would be trivial to throttle.
Netflix does not publish viewership information. But a large ISP could run DPI on Netflix traffic to determine what content is being viewed. And since many ISPs have their own TV product, they would be really interested in that information themselves.
But if Netflix streams at TLSed, then good luck figuring out Archer from The Lust of the Dead.
Not necessarily that hard. TLS won't hide the sizes of the files being downloaded. You may even be able to estimate the size of each segment as they're downloaded, which should give you a pretty accurate fingerprint.
You'd need to spend resources to play each movie with different devices and bandwidths and record the traffic pattern, which raises the bar a fair bit.
On the whole I doubt you would have a high probability of identifying any specific show. Even if you are able to cull 75% of the possibilities (i.e. 4 bits of entropy) that still leaves lots of shows (total ~1000 tv series and ~5000 movies by one source), plus all the noise of people pausing/switching, skipping credits, etc.
CBR does kill it, though, and "uniformly distributed" is too big an ask.
Off topic, but an interesting thought: you know the HBO intro? With the static? That static is the hardest thing in the world to compress, and also the thing that viewers care the least about having compressed accurately. That's weird, I wonder how true it is across the board -- certainly artifacts can be jarring in flat shaded cartoons...
For DSL typical packet MTU is 1400-something. Why do you ask? It doesn't really matter because the upper level proto is oblivious. You can just use b/s instead of packets/s if you want to compare bitrates.
There are special encoding modes in 264/265 for handling animation. I'm not aware if there being modes for the intro except that it is monochromatic.
I was wondering how finely you can get the total filesize if it's encrypted. Can you just count fixed size packets, or can you figure the length down to the byte? Makes a big difference if you're trying using that to fingerprint the shows.
Most ISPs, it's just easier to get an OCA in their data center that going through the process of throttling traffic or whatever else they want to do with it.
TLS SNI is still a way that an ISP could identify the traffic when it's routing folks on the net to an OCA in a different AS.
2. the CDN cache in fact is the place where this encryption (for the purpose of TLS) takes place. It therefore does not interfere with the CDN function.
[1] http://money.cnn.com/2013/01/10/technology/social/netflix-vp...
But the stated purpose was more benign: they couldn't add "share" buttons that would let you one-click-post "I'm watching House of Cards on Netflix" because they were supposed to have written consent to release that information.
I am OK with Netflix getting permission to build useful features. And I am absolutely OK with Netflix using my anonymized viewing data to, for example, build better content predictors to make my experience with their service better.
The law protected judges with sketchy video rentals from nosy journalists. It has almost nothing to do with protecting Netflix viewers from ISP and government surveillance. This measure deals with the latter.
A potential downside is that my predictions are less effective because I don't get to find that because you and I both liked Monk and Pink Panther, I would probably also like Psych, or another show you liked.
If this required mailing in a letter to Netflix so they could use your data, it would never work.
I would be fine with it being opt-out, or even opt-in. I would be curious what the response would be if you had to opt in to get useful recommendations.
Can you add a item to the ToS that says: Vendor is allowed to kill customer at any time during contract term?
Maybe that is a bad example, since assisted suicide is basically that.