[00:01.440 --> 00:02.260] Hello, HOPE. [00:02.700 --> 00:03.900] Hello, New York. [00:04.140 --> 00:09.540] Thank you for staying for what I think is the last non-closing ceremony talk of the conference. [00:09.880 --> 00:11.280] I've had an awesome weekend. [00:11.520 --> 00:12.800] I hope you guys have, too. [00:15.600 --> 00:24.920] I am here to talk about an EFF project that is dealing with a different kind of surveillance from the kind we've been talking about a lot this weekend. [00:25.140 --> 00:29.080] Of course, EFF works on government surveillance, defending against wiretapping. [00:29.080 --> 00:35.980] But today, I'm here to talk about the actual designed nature of the web and hypertext. [00:36.340 --> 00:38.720] The fact that it's spying on us all of the time. [00:39.080 --> 00:41.460] And that it's time to do something about that. [00:42.700 --> 00:46.220] So we have this project that we launched in alpha a few months ago. [00:46.820 --> 00:49.420] Actually, tomorrow morning, we're going to be going beta. [00:49.640 --> 00:53.980] So you guys get a preview of the new cool features and stuff that we're doing tomorrow. [00:55.020 --> 00:58.540] In this little program called Privacy Badger, I want you all to remember that URL. [00:58.880 --> 00:59.960] It's really easy to remember. [01:00.560 --> 01:04.180] You can install this thing during the talk, after the talk. [01:04.260 --> 01:09.600] Probably not during the talk because you'll get distracted and you'll tell me about the bugs in the software and I don't want to know about them until afterwards. [01:10.880 --> 01:12.440] You can file that stuff on GitHub. [01:13.200 --> 01:16.800] But, you know, I'm not just talking about Privacy Badger and this piece of software. [01:17.040 --> 01:21.980] I'm actually telling a story, I think, about the architecture of the web and the architecture of hypertext. [01:21.980 --> 01:24.760] And the way that privacy does or doesn't fit into that. [01:25.700 --> 01:35.020] So if you go back to the days before the web, we enjoyed a thing that we often took for granted, which was the right to read in private. [01:35.440 --> 01:41.140] You could walk into a library and walk between the stacks and pull out a book and start reading it. [01:41.340 --> 01:51.220] And unless there was someone cute further up the aisle looking at you, watching what you were doing, for the most part, no one would know what you chose to read. [01:51.980 --> 02:07.660] You could walk into a bookstore and purchase a book in cash, and other than the person at the checkout counter who didn't know who you were anyway, you could take that book home, put it under your bed, and no one would know that you were reading about whatever it was, [02:07.800 --> 02:14.100] anarchism or Islam, or secretly you were a conservative and you didn't want anyone to know that. [02:16.500 --> 02:18.320] Today, that right is gone. [02:19.680 --> 02:36.020] If you choose to read anything using the modern medium of reading that we've invented, the web, the chances are one, two, three, half a dozen, a dozen other parties and companies are going to end up knowing what it was that you were reading. [02:38.900 --> 02:50.360] We can indeed still go to the library, except by doing so, you're adopting, you're accepting a significant amount of inconvenience compared to what we now have as our best way of reading. [02:50.540 --> 02:56.940] So yes, you can, for the time being, until they close, let's try and keep them open, you still have those physical libraries. [02:58.060 --> 03:14.940] But, you know, we've just lived through something that was actually the equivalent of the Gutenberg invention of the printing press in terms of the degree of transformation and awesome improvement of writing in terms of the way it works, but we didn't bring privacy with us. [03:15.280 --> 03:19.860] Anyway, throughout this slide deck, I'm going to have some pictures of badgers because I can't help it. [03:20.360 --> 03:23.900] And, you know, we have the sad badger because we've lost the right to privacy. [03:25.180 --> 03:27.920] And we've built this new medium, the World Wide Web. [03:27.980 --> 03:29.260] It's an amazing achievement. [03:30.580 --> 03:35.000] But, along the way, we failed to build it with privacy in the design. [03:35.400 --> 03:39.600] And so, the web, you know, has these creepy eyes that are spying on us. [03:41.080 --> 03:45.300] And any time you get too sad, just think about cute badgers and we'll stay cheerful and we'll make it through. [03:47.360 --> 03:55.200] But if you look inside the design of the modern web, this privacy problem is woven in really deeply. [03:56.020 --> 03:58.760] Do you want to have basic hypertext functionality? [03:58.920 --> 03:59.720] Do you want hyperlinks? [03:59.740 --> 04:00.440] Do you want embedding? [04:00.740 --> 04:06.500] Well, you just also built referrer, post, and get tracking. [04:06.900 --> 04:16.760] The pages you're looking at just disclose to other web servers the fact that you're looking at the source page when you embedded an image. [04:17.840 --> 04:20.080] And, of course, we don't just use the web for hypertext. [04:20.400 --> 04:22.000] We use it for user interfaces. [04:22.280 --> 04:27.080] So, do you want a stateful user interface that remembers what buttons you clicked and actions you took a moment ago? [04:27.460 --> 04:31.440] Well, you need cookies or some other state tracking mechanism. [04:31.840 --> 04:41.200] And those turn out to also be the index identifiers that are used in these giant databases of our reading habits and online activities. [04:41.200 --> 04:48.160] So, the awesome functionality we wanted is completely entangled with the design of a surveillance system. [04:49.140 --> 04:51.160] Do you want offline web apps? [04:52.040 --> 05:00.920] And modern browsers support all sorts of nifty features for this, like little databases that they'll store for an application with its records and state. [05:01.420 --> 05:02.660] Now you have super cookies. [05:02.800 --> 05:10.020] So, even though you thought you blocked your cookies, there's this other thing that can be used to store identifiers and send them back to sites so they know who you are. [05:10.800 --> 05:15.640] And, okay, so, you know, we have these problems and what does it mean in practice? [05:16.980 --> 05:21.080] It means there are a lot of people who end up knowing what you read. [05:21.300 --> 05:28.260] Some of them know because, in a more fundamental sense, they are the platform on which you are reading. [05:28.380 --> 05:33.320] They are the first parties in your address bar, whether that's, you know, Google or Facebook or Amazon. [05:33.460 --> 05:38.860] People do so much through those companies that they just get to see a giant window into your life. [05:39.400 --> 05:42.820] It's people who've kind of surreptitiously snuck onto your computer. [05:43.460 --> 05:47.800] You've installed some app, some browser toolbar or something. [05:48.260 --> 05:49.940] Here are a bunch of these examples. [05:50.560 --> 05:52.060] They're really deceptive sometimes. [05:52.400 --> 05:54.060] You end up with this thing on your computer. [05:54.180 --> 06:01.220] Probably not people in this room, but your relatives, when you go to help them with their buggy computers, you'll find them full of this stuff. [06:02.620 --> 06:03.920] And it's tracking them. [06:04.320 --> 06:13.140] And then these guys, the third parties on the web, are the ones who really take advantage of those properties of hypertext I was talking about before. [06:13.320 --> 06:21.840] Where they've woven themselves into the page, and just by loading it and all of its sub-resources, you end up telling them what you're doing all of the time. [06:26.000 --> 06:31.120] So, this is the situation that I'm going to focus in this talk on these kinds of trackers. [06:33.880 --> 06:39.720] So, I want everyone, you know, along the way, let's just try and keep a vision of what we want here. [06:39.900 --> 06:43.360] We want the beautiful infinite library of the web. [06:43.620 --> 06:44.940] The infinite library of hypertext. [06:44.940 --> 06:47.860] I just really enjoy looking at pictures of beautiful old libraries, actually. [06:48.320 --> 06:49.420] So, here's another one. [06:49.960 --> 06:55.740] And of course, the one we have on the web, or the one we aspire to having, also has a lot of cute pictures of animals on it. [06:57.540 --> 07:01.020] They occupy, you know, a prominent, adulted place there. [07:01.920 --> 07:04.060] But, how is this beautiful thing funded? [07:04.600 --> 07:06.140] How is it built? [07:06.380 --> 07:09.760] It's built around all sorts of ghastly things we don't want to know about. [07:09.920 --> 07:14.340] Like, you know, deceptive ads for antivirus software, that they're actually malware themselves. [07:15.460 --> 07:26.200] You know, going to search for Firefox, and what you find at the top is an ad for the Yahoo version of Firefox, that probably comes bundled with some kind of toolbar that you'd rather not know the details of. [07:26.840 --> 07:32.780] All of these weird web ads that maybe some of us don't see, if you run an ad blocker. [07:33.140 --> 07:37.600] But a lot of humanity, the vast majority of humanity, is seeing this stuff, clicking on it. [07:37.600 --> 07:44.600] And this is the underbelly that's paying for a large fraction of the current web. [07:45.100 --> 07:51.360] And probably, in our beautiful infinite library, we'd rather it was funded by something more principled. [07:52.460 --> 07:55.080] So, how did we get into this mess? [07:56.680 --> 07:59.440] I don't think anyone exactly knows the answer. [07:59.740 --> 08:04.120] You know, collectively, when our species stumbles into a mess, it's usually the product of many forces. [08:04.120 --> 08:08.440] But a couple of interesting processes that I want to call out. [08:09.060 --> 08:12.180] One is these bad guys, who you're probably all familiar with. [08:12.920 --> 08:26.160] The RIAA and the MPAA, and their, like, crazy jihad against the Internet in the name of copyright law, has actually been, I think, hugely destructive for the way the web got built. [08:26.160 --> 08:32.220] And the subtle thing here is, these guys look like bad guys to us. [08:32.380 --> 08:48.660] But if you're a policy maker, if you're a member of the establishment, they are a respected industry that's been around for a long time, and has a legitimate claim to representing, or semi-legitimate claim at least, to representing creative people, authors, [08:48.800 --> 08:51.840] artists, musicians, who need to get paid for their work. [08:51.840 --> 09:03.580] And these industries have managed to kind of seize all of the mindshare around the idea that we have social institutions that are there to pay authors. [09:03.960 --> 09:09.000] And those institutions are all copyright and it's handmaidens. [09:09.580 --> 09:11.820] It's DRM, collecting societies. [09:12.140 --> 09:16.500] All of this infrastructure that we know, everyone here knows, is hopelessly broken. [09:16.500 --> 09:21.300] You know, we can't pay artists and authors in the future using DRM and copyright. [09:21.580 --> 09:23.740] And the idea that you could is absurd. [09:24.140 --> 09:36.680] And yet, this bunch of industries has hijacked any conversation about what we might do instead, if we were to set out to design good institutions for paying authors. [09:37.060 --> 09:40.340] So this is one problem that we face politically. [09:40.340 --> 09:56.700] The other problem is that people on our side, I think ultimately, technologically and politically, looked around at their options, you know, smart people in Silicon Valley and said, well, there is one way we could make the web that we want to work, the free web. [09:57.500 --> 10:02.120] Let's, like, let's just make everything work beautifully and elegantly and make it free. [10:02.120 --> 10:14.740] And then there will just be a small price, a small percentage price in your privacy, so that we can show you ads that will be very well targeted, and we can build a beautiful version of the web. [10:15.160 --> 10:21.880] And I think that's worked for Google itself, for, you know, Twitter itself, for some of those companies. [10:22.200 --> 10:26.680] But what it hasn't worked for very well is the web as a whole. [10:26.900 --> 10:35.360] And in particular, it's meant that the web as a whole is this tracking mechanism, and we're in this situation where we don't want to live with that privacy-invasive web. [10:35.720 --> 10:43.580] We do want to fund it, we do want good institutions, but we don't want the exact version we're living with. [10:43.840 --> 10:45.800] So, how do we get out of this mess? [10:46.580 --> 10:52.120] And I think there are many ways that hackers should be thinking about to fix this. [10:52.340 --> 10:59.840] And, you know, some people are already proposing creative business models, like, I think the rise of Kickstarter is a great thing for the web. [10:59.840 --> 11:08.540] I think the rise of Flatter and other payment methods that you can use to send a little payment to the site you're on is a great development. [11:08.820 --> 11:16.600] I think people are talking about ideas like variants of Bitcoin that pay the sites you enjoy reading just automatically when you visit them. [11:17.180 --> 11:20.440] All of these directions for innovation should be pursued. [11:20.720 --> 11:27.720] But the one I'm going to talk about today is the simplest, and that is to say, look, we're not going to get rid of the advertising-funded web. [11:29.020 --> 11:32.940] It's big and it's producing good things as well as privacy invasion. [11:33.200 --> 11:35.020] Let's just make it suckless. [11:35.480 --> 11:42.380] Let's figure out a way to have online advertising that isn't quite as demonic as what we've had so far. [11:43.380 --> 11:52.560] The strategy is build privacy tools that everyone, not just people in this room who know how to use NoScript or whatever, everyone can use them 24-7. [11:52.760 --> 11:54.680] They just get installed once and work nicely. [11:55.100 --> 11:57.900] They reintroduce the concept of consent. [11:58.300 --> 12:15.980] So instead of just browsing around the web and 12 companies get your reading habits or 100 companies get your reading habits, if the price of using Facebook or some other site is that you have no privacy on that site, that's a clear negotiation with the user. [12:15.980 --> 12:19.100] And they can make a choice about whether that's a price they're willing to pay. [12:19.820 --> 12:23.800] This is sort of the rhetoric of the advertising industry today, but it's, you know, fiction. [12:24.000 --> 12:26.460] No one actually consents to third-party tracking. [12:26.760 --> 12:30.140] Let's reintroduce real consent, informed consent. [12:31.140 --> 12:45.100] Let's find the best practices that, you know, some of the less evil advertising companies have out there and make those the minimum flaw for the web and encourage a marketplace where advertising companies actually compete to do better than that. [12:45.100 --> 12:47.760] And there are incentives which currently don't exist. [12:47.920 --> 12:54.260] You wouldn't know the difference between an ad showed to you by a creepy tracking company and one that respects your privacy. [12:54.700 --> 12:56.200] Let's make that actually happen. [12:57.780 --> 13:01.980] So we're going to do this with this browser extension called Privacy Badger. [13:03.200 --> 13:07.600] It's going to go out there and find those hypertext cookies and do something about them. [13:08.140 --> 13:15.640] It's going to find the super cookies and track them down and get rid of them and implement this strategic vision. [13:18.060 --> 13:22.200] So, along the way, you know, why is writing privacy software hard? [13:22.300 --> 13:23.760] Why doesn't this already exist? [13:24.200 --> 13:27.140] And a large part of the answer is arms races. [13:27.500 --> 13:35.400] You know, we've been telling people as technologists, oh, do something about cookies or do something about this tracking mechanism for decades, actually. [13:36.600 --> 13:39.480] And people out there actually hear this slowly. [13:39.660 --> 13:43.140] They hear, oh, yeah, I should clear my cookies and they start doing that. [13:44.040 --> 13:58.060] But when you've got an arms race between individuals trying to reconfigure their browsers manually or using, you know, one or two of the traditional extensions and the bad guys who are doing whatever it takes with large engineering teams to track you, [13:58.300 --> 13:59.440] the bad guys are going to win. [14:00.260 --> 14:06.840] We actually did a measurement of one of the mechanisms the bad guys were using in this Panopticlick project, which you might have come across. [14:07.060 --> 14:11.880] This is a little site, it's still alive, that measures the fingerprintability of your browser. [14:12.020 --> 14:13.640] The data on the site is a little bit old. [14:13.880 --> 14:32.100] But what we found in our initial tests of about a million browsers in the course of a couple of weeks was that around 90% of the desktop browsers in that sample could be uniquely identified out of a sample of a million just from the configuration and settings information you could read from a web page. [14:32.100 --> 14:35.700] So, you know, make a few JavaScript calls to say, you know, what's the screen resolution? [14:36.020 --> 14:37.840] What plugins does this browser have? [14:37.960 --> 14:39.100] What fonts will it render? [14:39.580 --> 14:41.440] And you get back a unique identifier. [14:41.700 --> 14:50.340] And so the bad guys who have all of these tricks, sneaky things they can do to your browser to track you, can win this kind of arms race. [14:51.340 --> 14:57.300] And, you know, our attitude to this is, look, if we have to fight an arms race, Privacy Badger is ready for that. [14:58.280 --> 15:07.140] But we'd prefer to live in peace and actually figure out, you know, a way to not be fighting arms races to get a policy escape valve from that. [15:08.780 --> 15:14.580] So, we view do not track as the policy part of a solution here. [15:14.800 --> 15:24.540] Do not track is a header that your browser can send to a website or a third-party website saying, DNT1, do not track this browser, you know, without its permission. [15:25.240 --> 15:37.280] And the theory was, we can't solve all of these complicated fingerprinting supercookie problems necessarily, but we can send a clear message to the company saying, this user did not consent to being tracked. [15:37.500 --> 15:42.120] And then it's a policy obligation on the part of that company to respect it. [15:42.520 --> 15:56.320] Now, what we saw, and there's a long and dirty backstory to this, is for a brief moment the U.S. advertising and tracking industry thought about doing this, and then settled on the answer that was, do not track means pretend not to track. [15:56.740 --> 16:04.080] What we will do when we see a do not track header is we will keep tracking you, but we'll stop showing you the creepy ads based on what we know. [16:05.740 --> 16:11.840] And, you know, their theory I think was, well, people can tell when they have creepy ads. [16:11.840 --> 16:14.920] And that creates a political problem for us. [16:15.080 --> 16:24.820] So we'll try to get rid of the political problem by using D&T to identify the people who are unhappy about this state of the world, but then we'll still track them. [16:25.720 --> 16:27.180] So what do we do about that? [16:29.020 --> 16:33.500] That's when we went back to the drawing board and said, okay, let's build Privacy Badger. [16:33.660 --> 16:40.300] Let's take the pre-existing best defenses that you could use in your browser, none of which were exactly right at the time. [16:40.300 --> 16:42.240] They've gotten a little bit better, actually. [16:42.440 --> 16:48.220] But I'm going to particularly call out Ghostery as being not really a serious credible privacy tool. [16:49.000 --> 16:51.860] AdBlock Plus can be if you configure it correctly. [16:52.000 --> 16:54.160] Disconnect is the best of these three. [16:55.260 --> 16:59.900] We want to do the perfected version of this vision. [17:00.640 --> 17:06.500] We want the serious badger that's there to protect you, but is also ready for pace if needed. [17:08.020 --> 17:09.500] Browser extension for Firefox. [17:12.320 --> 17:13.720] Browser extension for Chrome. [17:14.780 --> 17:19.740] Chrome is not nearly as cute, but I figured a flying badger on a weird angle is probably the best we can do for that. [17:20.520 --> 17:21.840] Yeah, look at the Firefox one again. [17:26.560 --> 17:29.540] Strategies, as I mentioned before, reintroduce consent. [17:29.540 --> 17:34.400] And the tactics are block all of the non-consensual trackers. [17:35.600 --> 17:41.100] But if a domain promises to honor a do not track, then unblock that domain. [17:41.340 --> 17:42.720] And how do we measure that? [17:42.960 --> 17:44.580] Well, we're working on a standard for this. [17:44.680 --> 17:46.340] We have a draft on our site you can look at. [17:46.420 --> 17:47.840] I actually should have put the URL in here. [17:47.840 --> 17:50.460] It's eff.org/dnt-policy. [17:51.420 --> 18:05.640] It's a verbatim text file, a bit like a robots.txt file, but you post a verbatim promise that's a strong promise saying, when we see a do not track header, we will honor it in this specific way that's set out here. [18:05.920 --> 18:08.980] And then that becomes legally enforceable in the United States. [18:08.980 --> 18:17.040] If a website does that, makes that promise, and violates it, the FTC, the Federal Trade Commission, can go and enforce against that. [18:17.280 --> 18:26.440] Or in Europe, the European Commission can go and create legal consequences for people promising to honor do not track and then lying about it. [18:26.580 --> 18:34.120] So we have this way of checking for sites that promise to do it right, and then we're creating incentives for them to do that. [18:34.920 --> 18:39.620] So Privacy Badger will never block the ads or widgets or third-party stuff of a site that makes this promise. [18:40.380 --> 18:44.380] There were three design options we considered for how to do the blocking part. [18:44.920 --> 18:54.600] One would be, you know, manual curation along the lines of AdBlock Plus, then there's an automated centralized version, and then an automated decentralized in the browser version. [18:54.740 --> 19:01.240] So the first vision is, you work with an open-source community, and you make an exhaustive list of every tracker you can find. [19:02.480 --> 19:11.460] And this sort of works for AdBlock Plus, but it involves shipping a canonical list of everything that's considered good and bad on the web. [19:11.640 --> 19:14.240] And at EFF, we didn't really want to do this. [19:14.240 --> 19:15.100] if we could avoid it. [19:15.220 --> 19:19.460] We didn't want to be in a position of arbitrating for the whole web by hand. [19:20.740 --> 19:33.180] The second option would be to run a giant crawler or a set of crawlers across the whole web and try and figure out what things were violating your do not track requests and identify those and then ship an automatically generated block list. [19:33.900 --> 19:41.140] The third version would rely exclusively on, almost exclusively on algorithms in the browser. [19:41.400 --> 19:53.480] So the browser itself watches what's happening over time, privacy badges there, observing third parties in your web pages, and it automatically blocks them when they appear to be tracking. [19:54.080 --> 20:00.120] Now interestingly, it turned out Internet Explorer 8, I don't know if any of you ever used Internet Explorer 8. [20:01.260 --> 20:02.460] I know I didn't. [20:02.580 --> 20:07.480] But it had a feature called in-private filtering that would do this. [20:07.920 --> 20:21.720] And they actually pulled it both because of lobbying by the advertising industry and because of the fact that when you turned it on, eventually it would start breaking things that were both trackers and necessary for the functionality of pages. [20:21.720 --> 20:25.640] A good example of this is pages that embed Google Maps. [20:25.980 --> 20:33.320] The domain that serves the map tiles, sets cookies and tracks you, and so it would get blocked. [20:34.160 --> 20:37.180] But you probably didn't want those maps disappearing out of those pages. [20:37.440 --> 20:42.360] So we knew from that lesson, that history lesson, that it wouldn't be good enough to just do that. [20:42.520 --> 20:55.040] We said what we'll do is we'll include an additional gray list that goes over the top of the algorithm and says, if we know about a domain that is like this, we'll, instead of blocking it altogether, we'll block its cookies. [20:55.760 --> 21:06.880] And the aim was for this third option to build something that might one day be shippable for the browser vendors themselves, might be a standard that could be deployed across the web. [21:07.720 --> 21:14.560] We had to do some calculations on whether we thought it was feasible to do tracker blocking this way. [21:14.720 --> 21:19.760] This is a data set from a paper by Bauer and Mayer. [21:19.760 --> 21:21.840] Jonathan Mayer actually spoke earlier today. [21:23.360 --> 21:31.480] This red graph shows the relationship between false positives and success at blocking trackers. [21:32.240 --> 21:41.800] If you do this kind of observation of tracking just from inside a single browser, you know, how many first-party sites do I see this third-party tracker on? [21:41.960 --> 21:44.500] So on this axis, you have the false positive rate. [21:44.500 --> 21:45.640] Higher is worse. [21:46.000 --> 21:49.760] On this axis, you have the fraction of tracking that stopped. [21:50.160 --> 21:51.100] Higher is better. [21:51.800 --> 21:55.120] And then the blue line is more global view. [21:55.200 --> 21:56.300] It's a global classifier. [21:56.420 --> 21:58.920] Like I talked about a crawler that you run across the whole web. [22:01.080 --> 22:03.460] But we want to be close to 100 here. [22:03.640 --> 22:09.540] So we want to be somewhere up in this region, whichever method we use. [22:09.660 --> 22:14.680] And then we're going to have to drag ourselves back over to the zero or close to zero false positive rate. [22:14.840 --> 22:16.680] And that's what the cookie blocking gray list does. [22:17.760 --> 22:25.220] And so then the question was, how many domains would we need to manually gray list in order to get close to zero false positive in practice? [22:25.500 --> 22:27.580] The answer seemed to be like a few hundred. [22:27.860 --> 22:35.260] So we just set out and we... from this data set, we went and identified those few hundred domains, gray listed them, and then said, okay, we've got a GitHub bug tracker. [22:35.380 --> 22:38.960] If people find other things that need to be gray listed, let's just deal with them as they come up. [22:40.700 --> 22:44.280] So we're going with this decentralized thing that might one day be part of a browser. [22:45.060 --> 22:46.760] We have this gray listing mechanism. [22:47.160 --> 22:50.000] It's option two out of this list at the beginning that I showed you. [22:50.580 --> 22:51.480] And we've built it. [22:55.250 --> 22:56.850] And you can get it at this URL. [22:57.090 --> 23:00.170] Now, I'm going to try... and this may not work. [23:00.270 --> 23:03.830] I'm going to try to actually jump over and give you guys a live demo. [23:04.370 --> 23:10.730] We'll see how I go with my luck and multiple displays and getting a browser to run here. [23:17.720 --> 23:19.620] So we want to... let's try this with... [23:21.240 --> 23:22.680] we have a blank directory here. [23:22.800 --> 23:23.820] Let's try this with Google Chrome. [23:24.680 --> 23:26.240] You guys actually can't see this. [23:26.480 --> 23:26.640] All right. [23:35.130 --> 23:35.570] Aha! [23:36.930 --> 23:37.550] Very good. [23:37.670 --> 23:38.250] This is promising. [23:40.830 --> 23:41.390] All right. [23:49.580 --> 23:54.320] So what we're going to do is we're going to run a fresh copy of Google Chrome here. [23:57.830 --> 24:01.030] It's going to show up on the wrong screen, so let me get it into the right place. [24:15.060 --> 24:20.460] Of course, your browser, the very first thing it wants to do is get your identity and start tracking you, but we're not going to let it do that. [24:22.120 --> 24:27.100] What we're going to do is we're going to go straight to the URL I was telling you about and get privacy badger. [24:28.420 --> 24:28.960] Come on. [24:37.240 --> 24:41.460] I'm sorry, these fonts are super small, so I'll try and make that a bit bigger so people can see. [24:42.940 --> 24:43.300] Okay. [24:43.460 --> 24:44.540] So we can install this. [24:50.320 --> 24:52.620] So now we have this little button in the corner of the browser. [24:52.780 --> 24:53.520] And what's this doing? [24:54.400 --> 24:56.080] On this page, it's not doing anything. [24:56.200 --> 24:57.000] There's no trackers here. [24:57.940 --> 24:59.180] But let's go and look at a... [25:00.300 --> 25:02.820] Anyone want to name a random website on the... [25:02.820 --> 25:03.400] YouTube. [25:04.040 --> 25:04.480] YouTube. [25:04.880 --> 25:05.260] All right. [25:05.400 --> 25:06.040] Let's go to YouTube. [25:07.100 --> 25:12.660] YouTube's an interesting one because it has some third parties in it, but they're all sort of basically run by the same company. [25:13.440 --> 25:21.680] And what you see at the moment is all of these are listed as green because privacy badger has no data, no multiple sites that it's observed any tracking across. [25:21.800 --> 25:23.100] So let's go to another site. [25:23.320 --> 25:25.080] Let's go to CNN.com. [25:25.720 --> 25:27.280] They've been, you know... [25:28.140 --> 25:31.480] Is that the television station that's been playing at us in the elevator? [25:35.040 --> 25:36.280] They're talking about plane crashes. [25:36.420 --> 25:37.800] Let's look at an article here. [25:40.200 --> 25:42.460] Let's go to another tab, slash dot. [25:43.660 --> 25:50.620] Because what we want is to see after a little while, when privacy badger starts seeing you on multiple... [25:52.060 --> 25:54.120] This is talking in the background here. [25:55.100 --> 26:00.780] When it starts seeing you on multiple pages, it's going to start saying, wait a minute, not everything is green anymore. [26:00.880 --> 26:07.980] Actually, even within a few pages, you've seen multiple instances of DoubleClick trying to cookie you inside those pages. [26:08.820 --> 26:12.420] So DoubleClick is an example of a domain that's been completely blocked. [26:12.500 --> 26:14.360] It's just not loading the content from that domain. [26:14.560 --> 26:16.940] It's also seen Google.com on several of these. [26:17.140 --> 26:22.340] Google as a third-party here is not being blocked because it's often used for API functionality. [26:22.340 --> 26:26.220] Instead, it's in this yellow state where it's having its cookies blocked. [26:27.420 --> 26:30.300] So Privacy Badger is automatically able to figure out... [26:30.300 --> 26:32.020] Let's go to another news site. [26:32.120 --> 26:32.900] Let's go... [26:34.740 --> 26:35.700] WashingtonPost.com. [26:39.620 --> 26:41.440] Here on this one... [26:43.340 --> 26:45.620] Wow, there's a lot of stuff going on in here. [26:45.760 --> 26:47.400] This is all still being... [26:47.400 --> 26:51.320] This is all still being whitelisted because it hasn't been observed very much. [26:51.320 --> 26:52.860] Let's open like five more tabs. [26:54.420 --> 26:55.020] And like... [26:55.020 --> 26:55.880] Youporn. [26:55.880 --> 26:56.840] Sorry, youporn.com. [26:57.680 --> 26:59.480] Yeah, guys, you want to call them out? [27:01.280 --> 27:01.620] Buzzfeed. [27:02.220 --> 27:02.560] Buzzfeed. [27:03.500 --> 27:04.180] Pornhub. [27:04.540 --> 27:05.780] EFF.org. [27:06.220 --> 27:06.360] Yep. [27:08.360 --> 27:09.040] 4chan. [27:31.040 --> 27:31.720] 5chan. [27:31.720 --> 27:32.660] The tracking in 4chan. [27:32.780 --> 27:33.880] That's incredibly disappointing. [27:44.270 --> 27:45.490] Anyway, so... [27:45.490 --> 27:51.030] I'm going to go back to this Washington Post page we saw a moment ago and let's see whether anything has changed when we reload it. [27:52.030 --> 27:54.850] That giant pile of domains that we saw before... [27:56.790 --> 27:58.350] Actually, a lot of this is still green. [27:59.570 --> 28:01.170] There are a few things getting blocked. [28:01.970 --> 28:03.590] Let's do a few more pages then. [28:04.330 --> 28:04.890] Amazon. [28:04.890 --> 28:05.950] Amazon is not very... [28:05.950 --> 28:07.150] Not very tracky. [28:07.390 --> 28:07.990] It's like... [28:07.990 --> 28:08.730] Like YouTube. [28:08.990 --> 28:13.850] The big online companies tend not to have these giant piles of third parties because they run them themselves. [28:14.150 --> 28:15.370] Whereas the... [28:15.370 --> 28:16.750] It's news sites and... [28:26.830 --> 28:30.270] Where was our BuzzFeed thing up here? [28:32.590 --> 28:36.330] Also, what you tend to find is when you click through to an article, you get a lot more tracking. [28:38.070 --> 28:38.790] Gawker.com. [28:45.210 --> 28:47.250] We have the Times up here. [28:51.000 --> 28:55.160] Let's go back to the Washington Post and open an article. [29:00.360 --> 29:03.340] What you'll also notice is that the ads are starting to disappear. [29:03.760 --> 29:06.760] Now, Privacy Badu doesn't explicitly target ads at all. [29:07.300 --> 29:10.980] It actually just treats them the same as everything else. [29:11.140 --> 29:12.540] It just happens... [29:12.540 --> 29:12.860] Oh, yeah. [29:13.140 --> 29:20.500] So, we're starting to see that even, you know, these trackers that were green before are actually being marked as things that are not respecting your Do Not Track requests. [29:20.860 --> 29:24.040] And, as I said, it's not targeting ads specifically. [29:24.320 --> 29:26.680] It just happens that ads don't respect Do Not Track. [29:26.840 --> 29:27.440] They cookie you. [29:27.550 --> 29:34.590] When you see an ad on the web, it's actually seeing you and seeing the page you're on and writing that down in a database or in 10 databases. [29:36.420 --> 29:39.220] So, let's go back to the slideshow. [29:41.440 --> 29:41.800] And... [29:41.800 --> 29:43.460] Oh, there's one more thing I want to show you, actually. [29:45.140 --> 29:45.980] Before I do that. [29:46.800 --> 29:47.460] Some cool... [29:47.460 --> 29:50.720] So, all of this you would have seen if you ran the beta version of Privacy Badger. [29:50.880 --> 29:53.960] And there are a couple of cool things we've added in the... [29:57.990 --> 29:58.710] In the... [29:59.270 --> 29:59.630] Sorry. [29:59.710 --> 30:00.690] All of this was in the alpha. [30:00.870 --> 30:02.290] We've got this beta that's launching. [30:03.170 --> 30:07.810] You can actually get it on the site right now, even though it's not labeled as such. [30:10.230 --> 30:10.710] So... [30:10.710 --> 30:12.290] This is not... [30:14.270 --> 30:15.510] Let's go here. [30:19.860 --> 30:21.520] If you're blocking a domain... [30:24.000 --> 30:25.780] This will happen by default. [30:26.480 --> 30:27.180] Ah, yes. [30:28.040 --> 30:29.780] This is not fully implemented yet. [30:29.960 --> 30:30.740] It doesn't... [30:31.260 --> 30:33.520] We're getting success with one of these widgets here. [30:34.240 --> 30:38.280] Privacy Badger is starting to incorporate code to recognize these widgets. [30:38.860 --> 30:39.380] That are... [30:39.380 --> 30:40.720] Things we see everywhere. [30:40.900 --> 30:43.400] And of course, widgets like ads see you when you see them. [30:43.560 --> 30:44.080] They track you. [30:45.620 --> 30:46.140] Um... [30:46.140 --> 30:49.980] When Privacy Badger would block a widget in the alpha version, they'd just disappear. [30:50.220 --> 30:52.000] You'd just lose these widgets on the page. [30:52.480 --> 30:56.920] What we're starting to do is drop in little Privacy Badger versions of the widget. [30:57.540 --> 30:57.940] So... [30:57.940 --> 30:58.880] This is... [30:58.880 --> 31:04.040] Instead of making the Google Plus widget disappear, if you want to interact with it, it turns it into this little button. [31:04.180 --> 31:07.840] And if you click that button, it turns into the real Google Plus button. [31:07.960 --> 31:11.520] Or with the Tweet version, it'll just go to Twitter and open a Tweet button for you. [31:11.520 --> 31:12.420] So... [31:12.420 --> 31:24.100] In cases where the functionality and the tracking have been really woven together and it's really widespread, we're starting to deploy a mechanism to let you still have that functionality and turn off the tracking at the same time. [31:47.400 --> 31:47.960] Um... [31:47.960 --> 31:51.080] It's sort of an open question about whether we're willing to live with advertising. [31:51.300 --> 31:51.840] I think... [31:51.840 --> 31:52.660] If I actually... [31:52.660 --> 31:53.380] You know... [31:53.380 --> 31:54.320] Let's ask this room. [31:54.460 --> 31:55.120] How many of you... [31:55.120 --> 31:57.240] And maybe it's unfair to do this after this talk. [31:57.440 --> 32:02.960] How many of you guys think, well, advertising sucks a bit, but actually, it's worth keeping... [32:03.720 --> 32:08.420] It's a respectable and honourable way, ultimately, to pay for stuff that we can give away for free? [32:08.560 --> 32:09.520] Can I see hands for that? [32:11.280 --> 32:12.420] About a quarter of the room. [32:12.560 --> 32:15.340] How many of you say, like, let's just get rid of it? [32:17.400 --> 32:18.800] It's actually about a quarter of the room. [32:18.840 --> 32:19.340] And the other... [32:19.340 --> 32:23.080] I think the other half of you are, like me, somewhat conflicted on this question. [32:23.920 --> 32:24.280] Um... [32:24.280 --> 32:25.200] Or you're not paying attention. [32:25.320 --> 32:25.780] One or the other. [32:27.200 --> 32:27.560] Um... [32:27.560 --> 32:28.000] Uh... [32:28.000 --> 32:31.740] And so I don't think we have a good answer to whether we want advertising or not. [32:31.840 --> 32:35.060] I think we want to let users block it completely if they want to do that. [32:35.900 --> 32:36.260] Um... [32:36.260 --> 32:39.780] But, you know, as a society, we're going to be living with it. [32:40.000 --> 32:40.320] Uh... [32:40.320 --> 32:41.540] It's not going anywhere. [32:41.780 --> 32:42.020] Uh... [32:42.020 --> 32:44.620] It's a necessary funding mechanism for a lot of stuff we value. [32:44.620 --> 32:45.660] Um... [32:45.660 --> 32:46.260] And so... [32:46.260 --> 32:53.900] In that situation, I think it's non-negotiable that it has to stop violating, uh... [32:53.900 --> 32:55.840] People's privacy without consent. [32:57.020 --> 32:57.860] This is... [33:04.570 --> 33:07.930] And that's something we think we can deliver with this project. [33:08.610 --> 33:09.090] Uh... [33:09.090 --> 33:12.170] And you guys can help, actually, by installing it yourselves. [33:13.670 --> 33:14.350] Um... [33:14.350 --> 33:16.610] Helping your friends and relatives to install it. [33:16.610 --> 33:19.070] And, you know, code is on GitHub. [33:19.470 --> 33:21.690] If there are things that break, come and tell us about it. [33:21.930 --> 33:22.190] Uh... [33:22.190 --> 33:23.210] Help us build new features. [33:24.570 --> 33:25.010] Um... [33:25.010 --> 33:27.490] And so I think we're going to get this piece done. [33:28.310 --> 33:28.750] Um... [33:28.750 --> 33:29.570] One way or another. [33:42.350 --> 33:42.790] Uh... [33:42.790 --> 33:43.410] Because... [33:43.410 --> 33:45.350] You guys have the skills to make this happen. [33:45.670 --> 33:47.290] Whether it's better versions of donations. [33:47.850 --> 33:48.730] Whether it's, uh... [33:48.730 --> 33:49.650] You know, if you're European. [33:50.050 --> 33:53.590] Actually, the Europeans have all sorts of traditions of using public funding. [33:53.970 --> 33:55.610] To pay for authorship and artistry. [33:55.870 --> 33:59.810] Maybe someone in Europe should go and figure out how to get their government to pay for awesome websites. [34:12.330 --> 34:12.770] Um... [34:12.770 --> 34:13.610] Uh... [34:13.610 --> 34:15.550] And remember to install Privacy Badger. [34:16.210 --> 34:17.530] And I'll take some questions. [34:27.930 --> 34:28.490] Hi. [34:28.830 --> 34:29.130] Um... [34:29.130 --> 34:29.530] So... [34:29.530 --> 34:31.110] As far as, uh... [34:31.110 --> 34:33.790] The ad revenue that a lot of sites use. [34:33.930 --> 34:35.790] There are plenty of sites like, uh... [34:35.790 --> 34:37.450] Web comics and blogs that wouldn't... [34:38.150 --> 34:38.290] The... [34:38.290 --> 34:41.650] The owners wouldn't be able to have those up without the ad revenue. [34:42.290 --> 34:42.850] Um... [34:42.850 --> 34:43.850] Does... [34:43.850 --> 34:44.550] How does... [34:44.550 --> 34:49.750] How does Privacy Badger affect the ad revenue that they gain when you visit their site? [34:49.750 --> 34:51.250] If there's tracking in those ads? [34:51.490 --> 34:59.050] So what we hope the answer is going to be in a month or two is not very much if at all. [34:59.530 --> 34:59.870] Uh... [34:59.870 --> 35:04.890] What this is going to take is one advertiser that complies with the Do Not Track policy. [35:05.130 --> 35:09.090] And then as soon as there's one advertiser that does that, uh... [35:09.090 --> 35:12.690] We can go to all those web comics and, uh... [35:12.690 --> 35:17.550] Online small businesses and say, Hey, you were using, like, Advertiser A yesterday. [35:18.150 --> 35:18.590] Uh... [35:18.590 --> 35:22.470] And they were tracking your users around the web in a completely creepy fashion. [35:22.790 --> 35:24.730] Here is your alternative B. [35:25.670 --> 35:26.110] Um... [35:26.110 --> 35:27.570] Either switch to them. [35:27.810 --> 35:31.070] Or just switch if you see a user who's sending a Do Not Track request. [35:31.170 --> 35:32.150] You don't have to do it for everyone. [35:32.410 --> 35:34.550] You see a Do Not Track request, um... [35:35.650 --> 35:37.990] Don't load the JavaScript from the first advertising network. [35:38.090 --> 35:39.090] Load it from the second one. [35:39.310 --> 35:43.670] And so that's what I mean by we want to create incentives for this industry to behave better. [35:43.670 --> 35:44.230] Uh... [35:44.230 --> 35:53.890] And so we're actually, you know, in the process of sitting down with some advertising companies that we think are more progressive on these issues and trying to figure out whether any of them are willing to be that pilot, uh... [35:53.890 --> 35:54.710] for doing it that way. [35:55.810 --> 35:59.350] Can Privacy Badger work as a fallback for NoScript? [35:59.670 --> 36:02.270] Or how does it respond to a pre-lockdown browser? [36:02.470 --> 36:05.290] A browser with cookies disabled for certain sites, et cetera? [36:05.290 --> 36:07.330] Yeah, so that's a great question. [36:08.130 --> 36:08.570] Um... [36:08.570 --> 36:10.290] So with, uh... [36:10.890 --> 36:11.030] Uh... [36:11.030 --> 36:12.590] NoScript, it actually plays pretty nicely. [36:12.730 --> 36:13.590] I think that, uh... [36:13.590 --> 36:17.190] As a NoScript user, at least some of the time myself, I feel like the... [36:17.190 --> 36:17.950] The... [36:17.950 --> 36:28.350] I always want to have an extension that just looks at requests my browser is making and says, this subset of requests are tracking requests I don't want my browser to be making. [36:28.530 --> 36:29.450] Throw those away. [36:29.970 --> 36:30.250] Um... [36:30.250 --> 36:34.270] And then what's left, I want to be able to manually white script, uh... [36:34.270 --> 36:34.870] JavaScript for those. [36:35.110 --> 36:35.530] Uh... [36:35.530 --> 36:39.630] And so, I think that NoScript plus Privacy Badger is a pretty good PAL user experience. [36:40.930 --> 36:41.410] Um... [36:41.410 --> 36:48.530] And then in terms of blocking cookies, we had some issues with this in the alpha because the way we were detecting the tracking was, uh... [36:48.530 --> 36:48.950] You know... [36:50.430 --> 36:52.470] Instrumented around API calls, uh... [36:52.890 --> 36:55.970] That cookie blocking settings in your browser would prevent from happening. [36:56.510 --> 36:56.950] Um... [36:56.950 --> 37:00.110] We've gotten a little better about that by starting to look at... [37:00.250 --> 37:04.090] We can't catch all of the cases, but when you have an incoming, um... [37:04.090 --> 37:07.590] HTTP response with a set cookie header, you can inspect that. [37:07.790 --> 37:11.270] And even though it's never gonna set the cookies, you can say, well, it would have set this cookie. [37:11.470 --> 37:13.030] That would have been a tracking mechanism. [37:13.290 --> 37:15.370] So, this third-party domain is trying to do that. [37:15.450 --> 37:16.570] I'll keep a record of that fact. [37:17.650 --> 37:18.050] Um... [37:18.050 --> 37:19.470] Hey, um... [37:19.470 --> 37:22.250] I'd just like to say this is my first hope ever. [37:22.630 --> 37:24.010] And it's like the best. [37:24.430 --> 37:24.830] Welcome. [37:25.190 --> 37:25.450] Yeah! [37:26.170 --> 37:26.570] Actually... [37:29.210 --> 37:29.610] Uh... [37:29.610 --> 37:30.650] I've... [37:30.650 --> 37:31.510] I've... [37:31.510 --> 37:36.390] I've never seen a room filled with so many intelligent people that desire for the truth. [37:37.390 --> 37:37.990] Um... [37:37.990 --> 37:38.210] But... [37:38.210 --> 37:39.550] Thanks, everyone. [37:40.890 --> 37:41.490] Uh... [37:41.490 --> 37:42.790] I mean, this is my question. [37:44.230 --> 37:49.230] You know, I'm somewhat of a noob, so to speak, but, you know, that's kind of besides the point. [37:50.250 --> 37:50.730] Um... [37:50.730 --> 38:00.790] What I wanna know is, how did you establish and formulate and build your brick road, your yellow brick road, to your... [38:01.530 --> 38:06.550] I don't know, your affiliation with what it is that you do? [38:07.070 --> 38:09.170] How did you build that brick road? [38:09.450 --> 38:22.590] And can you give me three functions that you threw into the concoction of the mix of how you formulated of what you're doing now? [38:22.590 --> 38:23.550] Okay, sure. [38:24.010 --> 38:24.190] Uh... [38:24.190 --> 38:25.690] I mean, there are two answers to that question. [38:25.810 --> 38:28.150] One is, how did I wind up being a technologist at EFF? [38:28.670 --> 38:28.870] Uh... [38:28.870 --> 38:32.350] And the short answer to that question was, I think I was, um... [38:32.750 --> 38:33.070] Um... [38:33.070 --> 38:34.230] You know, there were two moments. [38:34.490 --> 38:35.590] You know, one was, uh... [38:36.110 --> 38:37.370] I'll skip to the second one. [38:37.450 --> 38:38.010] I was, uh... [38:38.010 --> 38:39.730] You know, a computer science student, uh... [38:39.730 --> 38:43.950] I was working on my honors thesis, which is like an American senior thesis back in Australia. [38:44.450 --> 38:45.390] And I, uh... [38:45.390 --> 38:51.550] Was, you know, as probably everyone trying to finish a thesis or dissertation of any sort does, I was reloading web pages. [38:51.690 --> 38:52.890] And I was reloading Slashdot. [38:53.510 --> 38:53.950] Uh... [38:53.950 --> 39:00.110] And I came across the article about a guy named John Lech Johansen, who had written a video player for Linux. [39:00.430 --> 39:00.930] And he, um... [39:02.090 --> 39:02.290] Uh... [39:02.290 --> 39:03.790] Had, you know, done this awesome... [39:03.790 --> 39:05.590] Sorry, a DVD player for Linux. [39:05.590 --> 39:07.910] And he'd been arrested, uh... [39:07.910 --> 39:09.730] By the Norwegian government, uh... [39:09.730 --> 39:11.230] At the behest of the MPAA. [39:11.510 --> 39:13.150] You know, these guys we had on the slide before. [39:14.330 --> 39:14.770] Um... [39:14.770 --> 39:15.670] For having done that. [39:15.810 --> 39:17.090] And I got really angry. [39:17.210 --> 39:21.730] And I said, well, actually, rather than writing code, what I really want to be doing, uh... [39:21.730 --> 39:23.050] Is, uh... [39:23.050 --> 39:24.710] Defending, uh... [39:24.710 --> 39:28.050] The Internet against clowns like, uh... [39:28.050 --> 39:28.650] Mickey Mouse. [39:30.750 --> 39:31.190] Um... [39:31.190 --> 39:31.750] Uh... [39:31.750 --> 39:32.190] So... [39:32.190 --> 39:35.310] So that was how I ended up, you know, on the road to... [39:35.310 --> 39:37.470] Studying copyright policy and... [39:37.470 --> 39:37.790] Uh... [39:37.790 --> 39:38.510] Didn't get that slide. [39:39.110 --> 39:39.550] Um... [39:39.550 --> 39:41.510] Studying copyright policy and working at EFF. [39:41.750 --> 39:45.610] And then the question is, how did I end up working on this design for Privacy Badger? [39:45.770 --> 39:47.850] And actually, that came from running NoScript. [39:48.190 --> 39:51.870] And live HTTP headers and other tools for understanding what my browser was doing. [39:52.110 --> 39:55.210] And then I kept looking at what they were doing. [39:55.750 --> 39:56.890] What the browser was doing. [39:57.030 --> 39:57.890] What the hell? [39:58.210 --> 40:06.450] Why is my browser sending information about the page I'm on to a dozen other companies I've never heard of and have no relationship with. [40:06.890 --> 40:07.570] And I started to unpack that... [40:07.570 --> 40:09.010] Looks like George Soros. [40:09.670 --> 40:09.930] Yep. [40:11.170 --> 40:11.610] Um... [40:11.610 --> 40:15.330] I started to unpack that and wrote a blog post all three about it for EFF. [40:15.610 --> 40:17.590] And then that started, you know, uh... [40:17.590 --> 40:21.530] The press responded to that and that put us on the yellow brick road, if you like, uh... [40:21.530 --> 40:22.310] to Privacy Badger. [40:22.610 --> 40:22.890] Yeah. [40:23.690 --> 40:24.750] Anyway, thanks for the question. [40:32.220 --> 40:34.380] Thank you for Privacy Badger. [40:34.820 --> 40:36.380] We all appreciate it. [40:41.300 --> 40:41.860] Um... [40:41.860 --> 40:43.080] My question is... [40:44.720 --> 40:46.440] Invasive marketing, um... [40:46.440 --> 40:49.320] These people, they don't regard us as people. [40:49.480 --> 40:50.760] They see us as dollar signs. [40:50.960 --> 40:53.160] They just don't give a damn about who we are. [40:53.660 --> 40:54.120] Okay? [40:54.280 --> 40:55.960] So why should we give a damn about them? [40:55.960 --> 41:01.520] Why not have, instead of Privacy Badger, grow some fangs and have Privacy Beast? [41:01.880 --> 41:09.800] And Privacy Beast basically tinsels them with shaft and fills their databases with garbage and short circuits their profit model. [41:10.660 --> 41:11.340] Uh... [41:11.340 --> 41:11.420] Uh... [41:11.420 --> 41:13.280] So Privacy Badger is, uh... [41:13.280 --> 41:13.700] GPL. [41:13.900 --> 41:14.480] It's free software. [41:14.940 --> 41:15.380] Um... [41:15.380 --> 41:17.500] You can... [41:25.050 --> 41:25.790] Thank you. [41:30.220 --> 41:32.320] I'm excited to see where this goes in two years. [41:34.260 --> 41:34.720] Uh... [41:34.720 --> 41:36.160] I'm sure that you've heard of the, uh... [41:36.160 --> 41:37.360] The Epic Privacy Browser. [41:37.960 --> 41:38.360] Uh... [41:38.360 --> 41:38.480] Yep. [41:38.820 --> 41:39.000] Yeah. [41:39.120 --> 41:39.320] Uh... [41:39.320 --> 41:41.700] My question is, how does Privacy Browser... [41:41.700 --> 41:42.100] Excuse me. [41:42.120 --> 41:44.220] Privacy Badger compare to the, um... [41:44.220 --> 41:45.380] To the features that, uh... [41:45.380 --> 41:46.980] That Epic has in terms of, uh... [41:46.980 --> 41:47.280] Tracking? [41:47.820 --> 41:48.160] Um... [41:48.160 --> 41:50.680] So I haven't audited it to compare. [41:50.680 --> 41:51.400] I can... [41:51.400 --> 41:51.860] The thing... [41:51.860 --> 41:54.920] The versions of this question that I can answer, uh... [41:55.680 --> 41:56.000] Uh... [41:56.000 --> 41:57.040] Ghostery, uh... [41:57.040 --> 41:58.600] AdBlock Plus, and Disconnect. [42:00.500 --> 42:01.060] Um... [42:01.060 --> 42:01.980] Uh... [42:01.980 --> 42:02.160] Uh... [42:02.160 --> 42:04.320] In our experience, um... [42:05.140 --> 42:10.040] Of those three, Ghostery doesn't block much stuff by default. [42:11.280 --> 42:11.840] Um... [42:11.840 --> 42:12.060] Uh... [42:12.060 --> 42:13.320] In fact, it's, you know... [42:14.140 --> 42:17.100] Ghostery is produced by a company that works for the advertising industry. [42:17.280 --> 42:17.560] So their... [42:17.560 --> 42:20.580] Their first function is to figure out what, um... [42:20.580 --> 42:22.240] Trackers are out there on the web. [42:22.720 --> 42:25.840] So that they can sell that analytic service to those trackers themselves. [42:26.120 --> 42:29.260] Because often, sites don't know what trackers they have inside them. [42:29.640 --> 42:31.600] Because some web developer included a... [42:31.600 --> 42:32.680] A JavaScript embed. [42:32.800 --> 42:34.780] And that included five other JavaScript embeds. [42:34.820 --> 42:36.700] And no one ever figured out what was going on. [42:37.080 --> 42:37.440] So... [42:37.440 --> 42:41.680] Ghostery's primary function in life is to provide that data, uh... [42:41.680 --> 42:43.040] To the advertising industry. [42:43.440 --> 42:44.880] And its secondary function is to... [42:44.880 --> 42:49.940] You know, people who care about privacy can manually go in and make Ghostery start blocking things. [42:50.380 --> 42:50.660] Uh... [42:50.660 --> 42:53.040] But people who use it a lot tell me, uh... [42:53.040 --> 42:58.460] That when you really go in and drill down and try and make it block everything, it winds up being too aggressive and breaks a lot of stuff. [42:59.720 --> 43:05.180] AdBlock Plus, by default, doesn't block any invisible, uh... [43:05.180 --> 43:05.720] To JavaScript. [43:06.540 --> 43:07.020] So... [43:07.020 --> 43:07.660] Uh... [43:07.660 --> 43:10.260] It will take out all the ads from the page. [43:10.560 --> 43:15.140] But unless you go and manually subscribe to a different block list than the default, um... [43:15.140 --> 43:17.220] You don't get protection against that kind of tracking. [43:17.600 --> 43:22.440] And so we wanted something that would just by default, single click install, get you that result. [43:23.000 --> 43:23.280] Um... [43:23.280 --> 43:25.460] Disconnect, we actually probably, uh... [43:25.460 --> 43:25.660] Uh... [43:25.660 --> 43:27.620] Like the best of those systems. [43:27.840 --> 43:28.380] It's pretty good. [43:28.660 --> 43:28.940] Uh... [43:28.940 --> 43:33.280] And we've been talking about collaborating with them on the technical pieces of maintaining, uh... [43:33.280 --> 43:35.960] Versions for all the different platforms that are out there. [43:36.180 --> 43:41.280] Because there's quite a lot of engineering work to being on mobile, being on Chrome, being on Firefox, et cetera. [43:42.540 --> 43:43.020] What... [43:44.540 --> 43:47.500] By default, it doesn't block any invisible trackers. [43:47.660 --> 43:51.840] So if the page contains like a one-by-one GIF, is the classic version of an invisible tracker. [43:52.160 --> 43:55.220] These days, that's largely been replaced, uh... [43:55.220 --> 43:57.800] With JavaScript that's fetched, um... [43:57.800 --> 44:00.040] And does XHR posts back to... [44:00.040 --> 44:01.860] To report information about you. [44:01.860 --> 44:04.080] That stuff, by default, it doesn't block. [44:04.820 --> 44:08.020] Well, when you all get the chance, I'd love to hear a comparison about this versus Epic. [44:08.140 --> 44:10.200] I use Epic, but it's unwieldy for certain things. [44:10.360 --> 44:10.400] Yup. [44:10.400 --> 44:11.720] So I'd love to see how this stacks up. [44:12.000 --> 44:12.420] All right. [44:12.580 --> 44:12.980] We'll do that. [44:19.570 --> 44:19.930] Uh... [44:19.930 --> 44:19.950] Hello. [44:20.290 --> 44:20.510] Uh... [44:20.510 --> 44:21.170] Thank you, again. [44:21.870 --> 44:22.230] Um... [44:22.230 --> 44:27.010] I'm a little confused about the way it would retroactively handle cookies. [44:27.190 --> 44:28.670] So let's say that a service, uh... [44:29.050 --> 44:33.250] Gives you a cookie, and at first, Privacy Badger says, nothing fishy about this. [44:33.350 --> 44:33.730] That's okay. [44:33.810 --> 44:34.730] You can put the cookie there. [44:34.730 --> 44:38.230] But then later, it starts doing stuff that starts to get blocked. [44:38.790 --> 44:40.730] Does Privacy Badger, um... [44:41.270 --> 44:43.070] Do anything to the pre-existing cookies? [44:43.330 --> 44:44.530] Does it stop them from being edited? [44:44.690 --> 44:44.710] Yeah. [44:44.710 --> 44:45.770] Does it delete those cookies? [44:45.870 --> 44:48.950] Or does it leave that functionality there for the already okay sites? [45:04.190 --> 45:04.710] Um... [45:05.330 --> 45:07.770] It shows up in that little drop-down. [45:08.490 --> 45:08.930] Um... [45:08.930 --> 45:15.850] And then, every time it sees a third-party domain, the first question it asks is, in this context, does that domain look like it's tracking me? [45:16.270 --> 45:16.710] Um... [45:16.710 --> 45:20.550] And so it goes and looks at all the cookies that are in the cookie store for the domain. [45:20.970 --> 45:21.410] Um... [45:21.410 --> 45:23.350] All being set over the HTTP headers. [45:23.350 --> 45:26.350] And it says, um... [45:27.050 --> 45:30.790] Is this cookie, you know, not obviously kosher? [45:30.970 --> 45:39.530] And an obviously kosher cookie is something like, cookie whose value is one or zero, true, false, lang equals en, or some other common language code. [45:40.110 --> 45:40.570] Um... [45:40.570 --> 45:41.510] Those cookies... [45:41.510 --> 45:46.450] If there are cookies like that, it actually does a little entropy calculation for the total set of all of those cookies. [45:46.450 --> 45:49.990] And if it's below a, you know, a threshold, it'll say, ah, that's maybe not tracking. [45:51.750 --> 45:52.190] Um... [45:52.190 --> 45:57.730] But if the cookie is a long random string, like an identifier, a session token, whatever, um... [45:57.730 --> 45:58.730] That looks like tracking. [45:59.010 --> 45:59.810] And so it... [46:00.430 --> 46:00.870] But... [46:00.870 --> 46:04.790] You know, sometimes these third-party domains are not really tracking domains. [46:04.970 --> 46:09.730] They're just a, you know, an isolated subdomain that's, you know, part of a first-party experience. [46:09.970 --> 46:16.550] So it keeps a record of how many first-party domains it's seen that third-party and its cookies on. [46:16.670 --> 46:31.770] And if it sees it across more than three origins, then it says, oh, wait a minute, this thing keeps showing up in different places, and it's in a position to know my rating habits, not just on one site, but on three or more, okay, it's tracking me. [46:31.870 --> 46:36.910] So that's what causes the slider to move out of the green state in the browser. [46:38.030 --> 46:38.470] Uh... [46:38.470 --> 46:49.390] Whether it goes to red or yellow, usually, by default, it'll go to red, unless we've graylisted it and said, actually, we've found documented instances of this domain being necessary for functionality the user wants. [46:49.570 --> 46:52.050] In which case, we put it into the yellow state. [46:52.210 --> 46:53.370] That means cookie blocked. [46:53.850 --> 46:54.290] Um... [46:54.290 --> 46:58.210] In that state, we just do the third-party cookie blocking operation. [46:58.330 --> 47:02.390] We try to prevent the domain from getting access to its cookies when it's a third-party. [47:02.590 --> 47:06.890] But if you go back to that site as a first-party, you'll have the cookie again. [47:06.890 --> 47:09.070] So an example where you want that is google.com. [47:09.230 --> 47:16.970] You know, when you go back to google.com, you may want to be logged in, uh, to read your mail or have a, you know, a logged-in experience. [47:17.290 --> 47:21.250] So you'll get that, but on the third-party context, uh, you'll be logged out of Google. [47:22.370 --> 47:22.770] Uh... [47:22.770 --> 47:31.150] And then, if you want to manually change how Privacy Badger is behaving, you can just grab those sliders in the dropdown at any time and manually set them to any of those three states. [47:31.450 --> 47:36.750] Green is allowed, yellow is cookie blocked, red is completely blocked. [47:36.890 --> 47:39.010] And so you can choose how you want it to handle them. [47:41.430 --> 47:41.870] Yep. [47:42.070 --> 47:42.430] Okay. [47:42.630 --> 47:44.030] So if there is one... [47:44.030 --> 47:46.770] So we all know that do not track is, how should we say, hard to enforce. [47:46.950 --> 47:49.210] And great job-making software that actually does that. [47:49.510 --> 48:01.650] Uh, if there's one thing that we could do to fix the current mess over cookies and tracking, technically do, perhaps as a technical cross-browser standard, because I do work at W3C, what would that one thing be? [48:03.030 --> 48:03.470] Okay. [48:03.770 --> 48:04.090] Cross... [48:04.090 --> 48:14.350] The question is, uh, what one change to the web, uh, would we want to make as a cross-browser standard to, uh, make the web better? [48:14.570 --> 48:19.150] And I think, um, you know, we tried that at the W3C. [48:19.270 --> 48:30.370] What we would have said was, here's a, uh, strong policy document that sites have to comply with, um, when they see a D and T one header. [48:30.890 --> 48:35.450] Because, if I don't, if you, and that, you know, thus far has failed at the W3C. [48:35.590 --> 48:45.990] We'll see whether we can one day, you know, a few years down the track, if, if privacy badger and other things like it get enough momentum, um, uh, maybe we can go back and have that conversation again. [48:46.430 --> 49:00.030] Um, but the problem is, if, you know, if I can't have that policy solution, I'm stuck with, okay, I have to deal with referrers, cookies, super cookies, uh, fingerprinting, um, all these different tracking mechanisms. [49:00.190 --> 49:05.630] And I can't give you a single answer that solves all of those manifold problems at once. [49:09.020 --> 49:09.620] Oh. [49:09.920 --> 49:10.520] Yes. [49:11.540 --> 49:12.340] Oh, hi. [49:12.800 --> 49:20.700] Um, so, oh, what does respect for, um, D and T like entail? [49:20.700 --> 49:24.660] If somebody's tracker wants to be, you know, acceptable to... [49:24.660 --> 49:26.300] Uh, that's a great, another great question. [49:26.480 --> 49:29.300] So, uh, unfortunately I didn't have the slide on this. [49:29.420 --> 49:29.940] I have one minute. [49:30.380 --> 49:38.260] Um, uh, if you go to EFF.org slash D and T hyphen policy, um, you can read the answer to that question. [49:38.500 --> 49:47.180] The one minute version is, uh, if the user's not logged in, um, you need to throw away all your unique identifiers for them completely. [49:47.440 --> 49:49.840] You know, no cookies that are unique, no super cookies. [49:49.840 --> 49:57.900] If they are logged in, um, then you need to not keep those past the time when you've served the HTTP response. [49:58.220 --> 50:01.900] Uh, and then there's a lot of compromises with reality that are in the document. [50:02.080 --> 50:12.460] So it says, yeah, but if you have an explicit transaction that the user is engaged in, like they're about to post a comment, you can keep the data associated with making that comment happen, uh, for as long as you need to. [50:12.740 --> 50:21.120] And if you, uh, have evidence that the user is attacking you, they're launching a security attack or they're engaged in click fraud or whatever. [50:21.600 --> 50:27.800] Then in specific instances where your systems believe that you can keep that data, uh, without complying with the policy. [50:28.020 --> 50:34.020] Oh, but you can't just launder violation of this through third and fourth party. [50:34.180 --> 50:39.400] So you're obligated to make sure that if you embed other stuff, it also complies with, with this policy. [50:39.400 --> 50:52.420] So basically it's a, you know, about a two to three page document that tries to navigate all of those, those things in a way that we think is seriously privacy preserving, but also something that a large scale website could realistically implement. [50:52.580 --> 50:58.400] And we've, we've been going around and talking to people and hearing, yeah, this is a hard ask for us, but we think we can do it. [51:00.100 --> 51:01.220] I hope you can. [51:01.680 --> 51:09.760] Actually, we have, uh, there's, yeah, I actually, maybe I don't want to say there are actually some significant websites that you guys use that are now doing this. [51:10.080 --> 51:17.980] So, uh, we'll be saying more about who they are and doing a big, um, you know, a big press release about it when we have, uh, you know, maybe a dozen of them. [51:20.360 --> 51:27.940] Uh, in the orange cookie block state, is it just HTTP cookies that are, uh, blocked or not sent? [51:28.260 --> 51:31.600] Or are there other strong identifiers that are prevented? [51:31.980 --> 51:38.040] Um, so that's a move, that's a, you know, at the moment we do HTTP cookie cookies and maybe DOM super cookies. [51:38.380 --> 51:39.400] We aim to do all of them. [51:39.720 --> 51:43.220] Uh, but it's development work and we could, we could use pull requests for some of that stuff. [51:43.620 --> 51:51.400] Uh, especially anyone who's a really good flash hacker, we could probably use your help, uh, dealing with flash because it's such a, uh, hard thing to control from the browser. [51:54.740 --> 51:55.200] All right. [51:55.620 --> 51:57.120] Um, I don't think we have more questions. [51:57.260 --> 52:05.100] I just want to, like, I think this is on my slides, but I also want to just shout out, I know a number of you are in the audience, um, people who actually helped to write the code for this project. [52:05.260 --> 52:07.260] I only did a, you know, a minority of that. [52:07.780 --> 52:15.620] Um, Yansu and, uh, Cooper Quintin, uh, Franzi Roosner, um, Garrett Robinson, Jonathan Mayer, and Dan Auerbach. [52:15.700 --> 52:16.820] Thank you all for your help. [52:17.260 --> 52:18.000] Thank you. [52:26.430 --> 52:27.390] I'm out of time. [52:27.650 --> 52:29.230] It's, it's time for a closing ceremony. [52:29.470 --> 52:31.230] Thank you, uh, HOPE, for being awesome. [52:31.230 --> 52:31.310] Thanks for your support. [52:31.450 --> 52:31.770] Thank you all very much. [52:31.770 --> 52:31.970] Thank you all, and everybody. [52:32.030 --> 52:32.050] Thank you all. [52:32.250 --> 52:32.410] Thank you very much.