CRYPTO AND PRIVACY VILLAGE - Green Locks for You and Me
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 322 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/39877 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | |
Genre |
DEF CON 26103 / 322
18
27
28
40
130
134
164
173
177
178
184
190
192
202
203
218
219
224
231
233
234
235
237
249
252
255
268
274
287
289
290
295
297
298
299
302
306
309
312
315
316
00:00
Domain nameEncryptionTheoryCryptographyDifferent (Kate Ryan album)Graphical user interface
00:24
WebsiteWebsiteBlogTransport Layer SecurityGraphical user interfaceComputer animation
00:50
Graphical user interfaceInformation securityTransport Layer SecurityGreen's functionMereologyINTEGRALQuicksortPoint (geometry)WebsiteDomain nameComputer animation
01:23
Direct numerical simulationWebsiteDomain nameInheritance (object-oriented programming)Sinc functionServer (computing)CuboidWeb pageTouch typingPublic key certificateComputer animation
02:13
Convex hullBitPublic key certificateEmailTransport Layer SecurityWebsiteMultiplication signEncryption
02:31
WebsiteEncryptionPublic key certificateService (economics)Computer configurationSet (mathematics)Computer configurationWeb pageDirect numerical simulationWebsiteEncryptionComputer animation
03:06
FreewareError messageDirection (geometry)Domain nameQuicksortPublic key certificateUsabilityMereologyBitBlogService (economics)
03:43
Public key certificateTime domainGreatest elementBlogDirection (geometry)EncryptionSoftware repositoryComputer animation
04:03
Virtual machineMedical imagingHand fanComputer fileLocal ringWebsite
04:22
RootSoftware repositoryRootComputer fileDomain nameSet (mathematics)Direct numerical simulationSerial portWebsiteTransport Layer Security
05:03
Surjective functionDirect numerical simulationProgrammable read-only memoryInternet service providerDirect numerical simulationDirection (geometry)BitWordLevel (video gaming)Domain name
05:35
Set (mathematics)Direction (geometry)EmailPoint cloudWeb pageEncryptionComputer animation
06:03
Time domainEmailDomain nameEmailQuicksortContext awarenessRow (database)Hydraulic jumpFrustrationSet (mathematics)Causality
07:26
EmailTime domainAddress spaceIP addressEmailUniform resource locatorRight angleMathematicsDomain nameRow (database)MultiplicationService (economics)Direct numerical simulationFlagSlide ruleTwitterComputer animation
08:37
Key (cryptography)EmailTime domainServer (computing)EmailMereologyMobile appDirect numerical simulationBitOnline helpDomain nameKey (cryptography)Internet service providerComputer animation
09:17
Message passingAuthenticationEmailTraffic reportingEmailElectronic signatureQuicksortBlock (periodic table)Traffic reportingComputer animation
09:54
EmailCompilation albumMail ServerTraffic reportingGraph (mathematics)Public-key cryptographyEmailBlock (periodic table)Domain nameGreen's functionIP addressComputer animation
10:37
GoogolBlogMobile appSuite (music)Domain nameBitComputer animation
10:55
Server (computing)Set (mathematics)PlanningFreewareDifferent (Kate Ryan album)BitRow (database)Server (computing)Point cloudDirect numerical simulationSet (mathematics)Domain name
11:18
Mobile appKey (cryptography)EmailDirect numerical simulationDirect numerical simulationSet (mathematics)EmailQuicksortPublic-key cryptographyRow (database)Computer animation
11:39
EmailMobile appInfinite conjugacy class propertyDirect numerical simulationKey (cryptography)Web pageOnline helpUniform resource locatorSuite (music)Domain nameType theoryRow (database)Direct numerical simulationBlock (periodic table)Computer animation
12:06
Graphical user interfaceRow (database)Direct numerical simulationKey (cryptography)String (computer science)Domain nameRow (database)Direct numerical simulation
12:28
Row (database)Graphical user interfaceDirect numerical simulationDomain nameKey (cryptography)Set (mathematics)Direct numerical simulationPublic-key cryptographyType theory1 (number)Row (database)QuicksortOnline helpComputer animation
13:12
Direct numerical simulationSet (mathematics)Direction (geometry)Online helpString (computer science)Domain name
13:28
Set (mathematics)Key (cryptography)Time domainSign (mathematics)Domain nameKey (cryptography)Volume (thermodynamics)EmailEnterprise architectureFreewareInheritance (object-oriented programming)Sheaf (mathematics)Computer animation
14:07
Sheaf (mathematics)Sheaf (mathematics)Computer configurationBlock (periodic table)EmailMessage passingGraph (mathematics)Traffic reportingRow (database)Filter <Stochastik>Computer animation
15:02
EmailRow (database)Direction (geometry)Traffic reportingFlagEmailComputer animation
15:40
EmailComputer configurationAddress spaceEmailRow (database)
15:57
Row (database)EmailTraffic reportingComputer animation
16:17
EmailEnterprise architectureSpacetimeDomain nameSet (mathematics)FlagComputer animation
16:51
Domain nameState of matterView (database)Computer animation
17:15
Information Technology Infrastructure LibraryMultiplication signFrequencyDomain nameHand fanEmailBitComputer animation
17:39
File viewerIP addressSpacetimeMultiplication signComputer animation
17:55
EmailRange (statistics)MultiplicationPlanningComputer animation
18:15
Video gameGreen's functionEmailOnline helpSet (mathematics)LaptopMessage passingComputer animation
18:49
Mail ServerWeb pageEmailType theoryInformation securityFlagServer (computing)Computer animation
19:10
Transport Layer SecurityInformation securityEmailServer (computing)EncryptionEmailSet (mathematics)Information securityDomain nameWeb 2.0Transport Layer SecurityElectronic mailing listComputer animation
19:38
Slide ruleTraffic reportingUniform resource locatorEncryptionSet (mathematics)EmailMusical ensembleComputer animation
Transcript: English(auto-generated)
00:00
Our next talk will be by the wonderful Wendy Knox Everett, she's gonna be speaking to us about green locks for you and me. Well, hi everybody, can you hear me? Cool. So this is going to be a little bit different than some of the other cryptovillage talks. It's not about encryption theory or anything, this is going to be about using encryption for
00:22
your own personal domains if you have one. So, pretty recently, um, Chrome made a change, uh, they've been driving towards, uh, securing everything on the website with TLS and they had been labeling secure sites with a little green lock, which is where the title of my
00:41
talk came from, but they just recently made an update such that non-secure websites now are explicitly labeled as not secure. They have a really cool blog post about this, this is just, uh, about, I guess at this point 3 weeks ago, um, where they wrote about how this is part of their goal towards driving to securing everything with TLS. So TLS is really
01:04
important because it's, um, basically makes sure that the integrity of the website, um, is preserved. I'm not gonna go too much into TLS, I'm assuming if you're in a nerdy talk about green locks, you know what TLS is, uh, but we're gonna sort of dive into, um, using
01:20
this for some of our own personal domains. So this is my personal domain, uh, I have had a website since, like, the early two, actually I've had a website since, like, 1995. I've had my own domain since the early 2000s and it was just running on a Linux box that I was paying space for and I really didn't touch it. If you, like, go look at it, assuming my
01:41
DNS is not horked, um, it is a super, super simple, like, plain HTML page and I kept being like, yeah, I should actually do something about it because I'm such a big TLS advocate and my own personal website is not secure. And I kept being like, well, it's kind of a pain in the neck if you have, like, a two HTML page website on a very, uh,
02:03
crufty old Linux server that you're just renting from someone. Like, this is a pain in the neck, how am I gonna do this without, uh, basically spending hours on it because I don't have hours to do. So I ended up getting a, uh, TLS certificate for my website and
02:20
we're gonna run through that quickly and then I'm gonna end up spending the bulk of this time talking about email security because that's one that was actually a little bit more difficult to, to set up. Um, so Let's Encrypt is probably the most famous way to do this. I'm actually not going to talk about that method because I host my website now on
02:41
GitHub pages which is free, which is awesome. I don't pay anything to host my little tiny, uh, HTML pages. Uh, and when I set it up, they were not yet quite support, like, officially supporting Let's Encrypt, so I use Cloudflare. So my DNS is over there. There's lots of other hosting options out there. You can use WordPress as another very common one. Um, but I like GitHub pages because I already had a GitHub account. Um, I
03:04
like GitHub desktop as a tool to push things up. This may be a little worry here. This is, uh, showing the certificate that's on my domain, um, and it's a Cloudflare one. So I'm gonna go pretty quickly through how I set this domain up. Uh, GitHub does not have
03:23
the best directions unfortunately, which is part of what drove me to do this talk. This entire experience was a lot of trial and error, and I'm pretty nerdy. So I wanted to sort of document my path through as I did this for people to go back, um, and try again. And if you're at GitHub, I love your service. Please, uh, make your
03:41
documentation a little bit more user-friendly. So they have a blog post, uh, where they announce the Let's Encrypt stuff, and the directions at the bottom are what I followed. They're still pretty, uh, up to date. So you start out by creating, uh, a repo, and you just name it whatever your username is. Uh, my GitHub username is wendyck. Uh,
04:05
then you check it out in local machine. I'm a big fan of GitHub desktop. I like command lines, but the desktop thing makes it very nice to see, like, the graphical diffs and everything. Uh, and you move over your files. You can see I have, like, two HTML files and a couple of images. I have, like, the world's dumbest website. This is one of the first, like, not even tricky, but, like, slightly arcane
04:26
things you have to do. You create a text file called CNAME at the root of the repo, and you're gonna check that in. Then we're gonna go to settings, and we're gonna scroll down, and we're gonna add the custom domain. Uh, you can see that GitHub
04:40
thinks that my domain is not currently working. This is why I was joking about my DNS being horked. I grabbed this screenshot this morning, so I realized I'd forgotten this step. Uh, and of course, it now thinks my site's not secure, even though it is, and the redirect is actually working. So, DNS screws up everything, even when you're trying to give a talk on, uh, TLS. Uh, it is actually still working, so I'm not sure why GitHub thinks it's not. Uh, one of the
05:05
things that tripped me up a little bit is because I'm not really a DNS person, uh, was I didn't know what the word apex domain meant. It just means a top level domain, like example.com. For me, it's wendyk.org. And I was talking about, like, apex domains, and I'm like, well, I don't know what that is, and so I don't think that I have
05:21
that, but I do. Uh, so that's just a terminology that GitHub did not really particularly define very well. Um, I thought I had, like, a subdomain, like, www.wendyk.org, but I don't because I own the domain. So, they basically are gonna tell you to point to this, here's my DNS settings, I am copying their directions
05:41
and putting it in, and boom, I have a secure website, it's pretty cool. Uh, although it will take, it took, like, 48 hours, so I have to propagate out. Um, but that is essentially how you use GitHub pages with Cloudflare, the Let's Encrypt setup is almost identical. Um, you're just creating, uh, basically that CNAME, um, and you're
06:00
telling in the setting that this is gonna be a secure one. So, email spam is a big problem. Uh, I used to work in email marketing way back in the day, um, and kinda knew what SPF was, and so forth. Uh, and I've had my domain on Google Apps, uh, since it came out, and so I was kinda lazy about this whole thing, I'm like,
06:23
surely Google is taking care of this for me, I pay them $5 a month, I just use Gmail for my domain, I've not configured a damn thing, I'm sure they're on top of this. And then, um, I kinda started thinking, like, wait, no, to use SPF, you have to set domain records, uh, and I don't think Google can go set my domain records, and I
06:43
was like, maybe I should look into this, cause maybe my email is not half as secure as I think it is, or like, my email is secure, but like, my domain could be used to spoof, and because I have a very old .org domain, it's actually somewhat valuable for spam, so I was like, I should probably take care of this, and then fell down the, uh, email security rabbit hole, it took me about 3 weeks to get this to all
07:03
work, uh, and so that frustration kinda drove wanting to do this talk, to just lay out my path through setting this up, and sort of raising awareness for people to realize that you do have to go through some of this. So we're gonna do a nice jump into 3 technologies, SPF, DKIM, and DMARC, uh, and they all work together to keep people from
07:24
spoofing your domain when they send spam. So SPF is pretty old, uh, when I worked on email marketing from like 2002 to 2006, uh, SPF came out, I wanna say maybe in the middle of that, like, it was definitely around then, this is not a new technology. It
07:41
essentially allows you to publish a DNS record that says for this particular domain, like for wendykay.org, only a handful of, uh, IP addresses can send email, if you're getting email that is from any other IP address and purports to be from this domain, you should flag it spam. Um, and also I'm gonna, I'm gonna publish these slides to my
08:01
Twitter account right afterwards, so don't worry too much about capturing the URLs, I've got a whole, like a end slide of URLs for all of you too. Um, but the problem with this is that it requires every single person who receives email to go do that look up, people are lazy, it also can be kinda brittle, um, depending on your setup,
08:21
like at the IP address that is sending email changes, it can be a problem, um, people who send email from multiple places, like if you have your company's email and then your company's also sending marketing email under that, maybe through like a mail service or so forth, you have to remember to keep these all up to date. DKIM is the second part of this, it's kinda cool, we can cryptographically send our emails without
08:43
doing a darn bit of work besides entering a DNS key. Uh, Gmail works very well with this, so if you're just using, um, Google apps in your domain, they'll help you generate the key, which you're about to walk through, um, and you publish it. And these are gonna work with DMARC, um, to basically help you, uh, prevent people from
09:01
spoofing. Um, because it's a little tricky, it's not actually super widely, uh, adopted yet, this is still somewhat niche, uh, the big providers like Gmail and so forth are using it, um, but JoeQ mail server may not yet support DKIM. This is the headers from an email I sent myself the other day and I just pulled out the DKIM, uh,
09:23
pieces of it, we can see I've got DKIM signature and xGoogle DKIM signature showing that the email was cryptographically signed. And finally, DMARC, you can think of as sort of a block and report, um, it allows you to publish a policy and to basically see what's happening with your email. You can't use DMARC until you have DKIM and SPF
09:44
setup, um, which I didn't realize when I started this, I like jumped into DMARC and I was like, okay, I don't understand what's going on here, what's happening and had to kind of back up and do the SPF and DKIM first. Uh, so this is kind of an overview of, uh, how DMARC works. Essentially, um, the receiver is doing a lot of the work
10:05
here. They basically get the email, um, they're going to go check, uh, DKIM the public key, make sure that this is working, um, they're going to verify that the SPF is set correctly, so making sure that, like, the IP address, uh, is al- that they got the email
10:21
from is allowed to send email for that domain, and then they're going to apply a DMARC policy, which is what we're going to go, uh, walk through. Um, and then they generate reports for you. You have very nice, pretty little graphs, so I've got lots of, like, nice red and green, uh, pictures of block spam coming up. If you're on G Suite, which is the Google Apps for your domain thing, uh, they have, uh, actually fairly
10:44
good, uh, support. Um, it was way better than GitHub's. And there's also this DMARC analyzer, uh, thing as a blog post that's also fairly decent that will walk you through how to do this. So this is a little bit jumping back, I mentioned I use Cloudflare for my DNS, um, so this is just showing that, uh, the place where I registered my
11:04
domain, I am pointing to Cloudflare DNS servers, and I'm going to do all my DNS settings through Cloudflare. I'm just on a Cloudflare free plan, I'm not paying them anything. Um, and there's 3 different DNS records that we're going to go set up. So first, we want to generate the DKIM, uh, public keys. This is basic public key
11:25
cryptography, um, they're going to keep the private key, I'm going to publish the public key out in my DNS records, anybody who gets email from me can go check it. And in G Suite, you basically have to sort of hop down in through a couple settings to get it. Um, you would probably want to, oh it's probably back to the G page, uh, check the G, the G
11:45
Suite help pages before you do this because they do like to basically rebuild their dashboard and this could move. Uh, as of the other day, it was still at this location. And this is what it looks like. Um, it's going to generate a TXT record value for you, and TXT is a type of DNS record that just allows you to publish a block of
12:04
text. The name of it, as we saw, is Google underscore domain key, and the value starts, uh, with this V DKIM, it goes out, um, K is RSA, we're telling it's an RSA key, and P equals, um, that whole big long string. So I go to Cloud4DNS entry, up at the top,
12:25
there's a way to add a new record, I tell it I want a text, so for name, I put in the Google underscore domain key, for value I paste in that whole big value, and voila, I have the first of my required, uh, DNS settings up here. So I'm not going to dive too
12:41
deeply into, uh, all of the DKIM tags, uh, the only required one here is P equals, which is your public key, um, if you don't have that in your DKIM, uh, TXT record, you do not have a valid one. All these other ones are optional, uh, the only ones that I'm
13:02
using, um, I believe are, uh, like the K equals RSA, and I think we have V equals, uh, so those sort of help it figure out what type, uh, key your public key is. So next we're going to do the SPF settings, um, again, Google has pretty decent help for this, it will tell you exactly the string that you need to copy and paste into your DNS
13:22
setting, you just, uh, follow their directions, copy it, paste it in, so now we have two DNS settings published. And so now we're ready to set up some DMARC domain keys, this is the fun stuff. Uh, I use DMARCian, if you have a personal domain and you don't have a lot of email volume, this is great because it's free, you're going to see later, like, my
13:40
super low email volume, I just don't send very much. If you're a company, it's also really cool, I know some folks who have enterprise accounts are very happy with it, um, you do have to pay for those, but you have to be sending a significant volume of email before you're paying for it, so if it's just your personal domain, you're probably going to be fine on the free one. They make you sign up first for a trial, and
14:01
then, um, they'll tell you if you can remain free after two weeks, like, you're probably going to remain free. Um, so they have a whole section that's going to walk you through how to add DMARC. These are all the DMARC options here. Um, the PCT is going to be the percent of messages that we're going to be doing this filtering. Some people
14:22
like to start out with just subjecting 10% of their sent email to it. I sent such little email that I just immediately sent it to 100%. The, um, RUF and RUA are used for reporting. We're going to see some, uh, reporting options that I get from DMARC-ing, so I, DMARCian, so I can see, like, very nice graphs of block to email and so forth. Um, and
14:43
if you're using DMARCian, they will tell you what email value to put in. The P is a policy. You can be doing, um, quarantining or blocking, um, or, and I'm spacing on the name of the, uh, like, don't do anything, just let me see what's being sent option. So, there's three options there. Um, this is my, uh, DMARC, uh, TXT record. I went to
15:08
Cloudflare and I put it in. So, DMARCian has fairly good directions. Um, P equals none is the, like, don't do anything, I just want to see what's out there. I, it's a good one to start with. Um, once you have, like, your reporting working, um, and
15:24
DMARCian has, like, a little issue tracker and it tells you, like, hey, things are great, it's not flagging any issues, which for me, it was flagging, like, I didn't have SPF set up at first. Then you can move to quarantine, which means, like, hey, flag these things as spam, and then once you have that, you can move to reject, which means, like, don't allow this mail to get sent. Reporting is really fun. The RUA equals
15:44
option is where you set it. You don't have to use DMARCian, you don't have to use their stuff for it. You can put your own email address in here and do your own filtering and so forth, but I'm lazy and don't want to write my own tools, I'm using the free tools. They have a really nice thing called the DMARC record wizard. Uh, my DMARC
16:02
setting came out of this tool. It walks you through, it basically prompts you, like, what do you want to do, do you want to be blocking, what percent of email, do you want to use our tools, or do you want to use another one? And they, as I've been mentioning, they have really nice reporting. Uh, so as I mentioned, you could use your own email in that RUA
16:22
tag. Uh, some people have, like, bigger enterprises, um, are doing that. Otherwise, uh, if you have the DMARCian email in there, it goes there, um, it will show, uh, where email from your domain is sent from. I've had some friends who have set this up and been like, whoa, where, where is that email coming from? Like, that's within our IP space
16:40
and we didn't realize that was sending email, so that can be kind of enlightening. Um, threat unknown emails that it flags are basically things that are not, um, within your SPF and they're not following your DKIM settings. So when you log in, you get this very nice domain overview. I only have one domain, my1dk.org. You can see right now, um, the SPF and the DKIM state are all set up because I published those keys and they've
17:04
propagated out. Uh, this is going into, um, essentially a summary, uh, view that they have. You can export as CSVs or so forth. This is an older screenshot. I had one day when, like, 36 spam mails were sent from my domain and we blocked them. Uh, it varies
17:24
immensely. Like, I've seen up to, like, 200 and then long periods of time with nothing, um, the long periods of time with nothing is a little bit more common now, um, because I've had this set up for a little while and I think that people are starting to decide my domain is not worth spoofing anymore. But it's really fun when you are getting
17:41
spammed to go in and, like, see, like, whoa, who's trying to spoof me? This is really cool. Uh, you can sort of dive into, like, the IP address space, look it up, see what country it is. Uh, it's very interesting. I lost a lot of time just poking at it because it was fascinating to me. Uh, the detailed viewer, this is from that day with a ton of spam and you can see also I'm a very light email user. I sent, like, four
18:03
emails on those days. This is well within the range of demarking and free. I could probably, like, quadruple or more my email, uh, sending volume and be quite fine on the free plan. This is what it looks like now. Uh, I've sent two emails over the last week, everything's green, nobody's trying to spoof me, life is great. Uh, demarking
18:26
and issues tab under monitor is super helpful. Uh, I took screenshots and I was trying to set this up and I lost them on my laptop so I don't have anything to show you but it would be a little, like, your SPF is screwed up, go fix it, uh, message, which I found incredibly helpful. Uh, so if for no other reason than for that, I
18:43
recommend you use demarking if you're setting this up. Uh, so finally I just want to touch on a couple other things. I am the world's biggest advocate of, uh, outsourcing your email. I did email, it's ridiculously complicated. I remember getting pages at 4AM when things went wrong so I do not want to do this anymore. But I have some
19:00
friends who, for whatever reason, like to run email servers in their basement. Uh, so if you're that type of crazy, uh, there's two things I wanted to flag for you. Uh, MTA strict, uh, security basically allows domains to require TLS encryption. Um, it's an interesting setting. StartTLS also allows your mail server to protect against
19:23
downgrades. They're building, um, a list of basically servers that, uh, are going to do this and it is basically going to be like, um, what happens with the web, with TLS? You can say, no, I only support TLS, like, please do not ground, downgrade me. And so finally, um, I have some slides or some URLs for you here. Uh, Aaron pointed out
19:45
that the FTC has a really helpful report on, um, why you would want to use, uh, these email, uh, encryption settings. If I haven't convinced you, like, blocking spammers is fabulous. You can go read about the FTC. Uh, these how to explain SPF, DKIM and
20:01
DMARC, um, are really helpful, uh, because I had to go very fast over them. And so, cool, that's the end of my talk. Thank you for coming.