What is DNSSEC (Domain Name System Security Extensions)?

IBM Technology
22 Jul 202411:17

Summary

TLDRThis video explains the importance of DNSSEC (DNS Security Extensions) in preventing attacks where users are redirected to malicious websites. It describes how DNSSEC ensures origin authentication, data integrity, and authenticated denial of existence using public key cryptography. The video details key record types like the DNS Key, ZSK (Zone Signing Key), KSK (Key Signing Key), and NSEC, explaining how they work together to validate DNS responses. Finally, the video guides users on implementing DNSSEC by signing the zone, testing for errors, and setting up a DS record with a registrar.

Takeaways

  • 🔒 DNSSEC (DNS Security) is essential for securing DNS queries by ensuring users reach legitimate websites.
  • 💻 Attackers can reroute DNS traffic to malicious servers, leading to credential theft and other malicious activities.
  • ✅ DNSSEC provides three key protections: origin authentication, data integrity, and authenticated denial of existence.
  • 🌐 DNSSEC verifies each step in the DNS query process, ensuring that users communicate with legitimate servers.
  • 🔐 Authenticated denial of existence ensures that non-existent domain requests (e.g., foo.ibm.com) are validated and proven not to exist.
  • 🔑 DNSSEC relies on public key cryptography (PKCS) using public/private key pairs to ensure trust and authenticity.
  • 📝 New DNS record types introduced by DNSSEC include DNSKEY, RRSIG, KSK (Key Signing Key), ZSK (Zone Signing Key), and NSEC.
  • 🔗 The chain of trust is established through delegation signer (DS) records, ensuring that each server in the query chain is legitimate.
  • ⚙️ To implement DNSSEC, you need to sign your zone, test your setup, and then submit a DS record to your registrar to enable DNSSEC.
  • 🛠️ Testing your DNSSEC configuration is crucial to ensuring that all keys and records are properly set up before going live.

Q & A

  • What is DNSSEC and why is it important?

    -DNSSEC stands for DNS Security Extensions and is important because it helps prevent attacks where traffic is rerouted to malicious DNS servers. It ensures that users are connected to the correct server by providing origin authentication, data integrity, and authenticated denial of existence.

  • What kind of attack does DNSSEC help to prevent?

    -DNSSEC helps to prevent man-in-the-middle attacks where an attacker reroutes DNS traffic to a malicious DNS server. This can lead to users being directed to fraudulent websites where their credentials and sensitive data may be stolen.

  • How does DNSSEC provide origin authentication?

    -DNSSEC uses public key cryptography to validate the origin of DNS responses. When a DNS query is made, DNSSEC verifies that the response came from the correct, authenticated DNS server using a public-private key pair.

  • What are the three main functions of DNSSEC?

    -The three main functions of DNSSEC are: 1) Origin authentication, 2) Data integrity checking, and 3) Authenticated denial of existence.

  • What is 'authenticated denial of existence' in DNSSEC?

    -Authenticated denial of existence is a feature of DNSSEC that verifies when a requested DNS name doesn't exist. It ensures that the DNS server is correctly confirming the non-existence of a domain, preventing attackers from fabricating such responses.

  • What role does public key cryptography play in DNSSEC?

    -Public key cryptography underpins DNSSEC by ensuring that DNS responses are signed with a private key and can be validated by anyone with the corresponding public key. This ensures that the response has not been tampered with and comes from a legitimate source.

  • What is the difference between a KSK and a ZSK in DNSSEC?

    -In DNSSEC, a KSK (Key Signing Key) is used to sign the Zone Signing Key (ZSK), while the ZSK is responsible for signing the zone data itself. The KSK helps establish a chain of trust by being recognized at a higher level (TLD) and signing the ZSK.

  • What is an RRSIG record, and how does it relate to DNSSEC?

    -An RRSIG record is used in DNSSEC to cryptographically sign DNS responses. It ensures that the response has not been altered and verifies the origin of the data.

  • How does DNSSEC establish a chain of trust?

    -DNSSEC establishes a chain of trust through the use of DS (Delegation Signer) records at each DNS level. The DS record at one level points to the KSK at the next level, allowing DNS resolvers to verify that the DNS response is coming from an authenticated server.

  • What is the process for enabling DNSSEC for your domain?

    -To enable DNSSEC, you first need to sign the zone by creating a ZSK, KSK, and RRSIG. Then, test the setup to ensure there are no errors. Finally, contact your registrar to add the DS record. Once the DS record is in place, DNSSEC becomes active, and DNS responses are validated.

Outlines

00:00

🔐 Introduction to DNSSEC and Its Importance

This paragraph introduces the topic of DNSSEC (DNS Security Extensions) and explains why it matters. It starts by describing a typical DNS resolution process, where a user's request to access a website (like ibm.com) is intercepted by DNS servers. The paragraph highlights a potential security issue where an attacker can reroute traffic to a malicious DNS server, leading to credential theft and other malicious activities. DNSSEC is designed to prevent this by ensuring origin authentication, data integrity, and authenticated denial of existence.

05:01

🔑 Public Key Cryptography in DNSSEC

This section focuses on how DNSSEC works by leveraging public key cryptography (PKCS). It explains the concept of a public-private key pair, where the private key encrypts the data, and the public key decrypts it. This ensures that the data is genuine and comes from a legitimate source. The paragraph introduces the DNS key record types: the KSK (Key Signing Key) and ZSK (Zone Signing Key). The ZSK signs the zone's records, while the KSK signs the ZSK to establish a chain of trust, preventing attackers from tampering with DNS data.

10:02

🔄 Implementing and Testing DNSSEC

The final paragraph outlines how to implement DNSSEC in practice. It advises on generating the necessary keys (ZSK, KSK) and signing the DNS zone. Additionally, it emphasizes the importance of testing the setup to ensure there are no errors. Once testing is complete, the DNSSEC system becomes live after registering the DS (Delegation Signer) record with the DNS registrar, enabling DNSSEC validation for resolvers. The paragraph concludes by encouraging users to protect their websites with DNSSEC and mentions steps to go live and prevent DNS hijacking.

Mindmap

Keywords

💡DNSSEC

DNSSEC (Domain Name System Security Extensions) is a security protocol that adds layers of authentication to the DNS system. In the video, DNSSEC is introduced as a solution to prevent attackers from rerouting traffic to malicious websites. It ensures the integrity of DNS responses by verifying the authenticity of the source and preventing tampering with the data.

💡DNS Resolver

A DNS resolver is a server that queries other DNS servers to resolve a domain name into an IP address. In the video, it's explained how a user's DNS resolver communicates with different DNS zones, including the root zone and TLD zone, to obtain the correct IP address. DNSSEC helps protect this communication from being compromised.

💡Origin Authentication

Origin authentication is one of the key functions of DNSSEC, ensuring that DNS responses come from the legitimate source. This prevents attackers from injecting false DNS information into the communication. In the video, origin authentication is highlighted as crucial in validating the authenticity of DNS servers at different levels (root, TLD, and domain).

💡Data Integrity

Data integrity, another function of DNSSEC, ensures that DNS responses are not altered in transit. The video explains how DNSSEC uses cryptographic signatures (RRSIG records) to verify that the data returned from a DNS query hasn't been modified, ensuring the user receives the correct IP address.

💡Authenticated Denial of Existence

Authenticated denial of existence is a mechanism in DNSSEC that allows a DNS server to prove that a domain name doesn't exist. In the video, this concept is explained using the example of 'foo.ibm.com,' where DNSSEC ensures the user can trust that the non-existent domain really doesn't exist, using NSEC records.

💡Public Key Cryptography System (PKCS)

PKCS is the underlying technology for DNSSEC, enabling the use of public and private key pairs to secure DNS transactions. The video explains that PKCS is central to origin authentication, data integrity, and authenticated denial of existence, providing a method to validate that responses come from the correct source.

💡Zone Signing Key (ZSK)

The Zone Signing Key (ZSK) is a key used in DNSSEC to sign the records in a DNS zone, ensuring their authenticity. The video explains how ZSK is used to sign DNS records, such as the IP address for a domain, and how it works together with the KSK to create a chain of trust.

💡Key Signing Key (KSK)

The Key Signing Key (KSK) is another key in DNSSEC, used to sign the ZSK. The video details how the KSK, through the use of a DS record at the TLD level, helps validate that the ZSK belongs to the correct domain, ensuring the overall chain of trust from the root server to the domain level.

💡RRSIG

RRSIG is a DNSSEC record type that provides a cryptographic signature for DNS records. The video discusses how RRSIG is used to validate the authenticity and integrity of DNS responses by ensuring that the information returned from the DNS server hasn't been tampered with.

💡Delegation Signer (DS) Record

The DS record is a type of DNSSEC record that links the KSK to the parent zone, such as the TLD zone. The video explains how DS records are used to establish a chain of trust, ensuring that the DNS server being queried is legitimate by comparing the DS record with the KSK at the domain level.

💡NSEC Record

NSEC (Next Secure) is a DNSSEC record type used to provide authenticated denial of existence. In the video, NSEC is described as the mechanism that allows a DNS server to cryptographically prove that a domain name, like 'foo.ibm.com,' does not exist within a zone, preventing spoofing of non-existent domains.

Highlights

Introduction to DNSSEC and why it's important for preventing DNS attacks.

Example scenario of how DNS can be hijacked to direct users to malicious websites.

DNSSEC provides three main security benefits: origin authentication, data integrity, and authenticated denial of existence.

Explanation of how DNSSEC ensures that users are directed to the correct DNS resolver and website.

Authenticated denial of existence ensures that non-existent domain names are correctly validated.

DNSSEC relies on public key cryptography (PKCS) to secure DNS transactions.

Introduction of the DNSKEY record with two subtypes: KSK (Key Signing Key) and ZSK (Zone Signing Key).

The ZSK is used to sign the zone, validating the authenticity of DNS responses.

The KSK signs the ZSK, establishing a chain of trust between DNS records.

The DS (Delegation Signer) record ensures that DNS keys belong to the correct domain.

Chain of trust validation occurs at each DNS level, from the root zone down to the specific domain.

The NSEC record is used for authenticated denial of existence, verifying that non-existent records truly do not exist.

To implement DNSSEC, zones must be signed using ZSK, KSK, and RRSIG records.

After creating and testing DNSSEC records, the final step is to set up the DS record with a domain registrar to enable validation.

DNSSEC ensures that users are protected from being redirected to malicious websites, securing the overall DNS resolution process.

Transcripts

play00:00

Today we're going to be talking about DNSSEC,

play00:04

or DNS security.

play00:07

You may have heard of this before,  but you're wondering why do I care?

play00:10

And what can I do with it?

play00:12

Once you understand that, you'll probably  want to know how you get started.

play00:14

And we'll be covering all  three of those things today.

play00:17

So let's first talk about why you need DNSSEC.

play00:21

Imagine that one of your users

play00:23

is trying to get to your  website, let's say ibm.com.

play00:28

They type in ibm.com in their browser.

play00:32

And it goes to their resolver, their DNS resolver.

play00:35

Their DNS resolver talks to the the root zone.

play00:40

It talks to the TLD zone for .com.

play00:44

TLD for .com.

play00:47

And then it talks to the IBM.com name server

play00:54

and it gets back in answer.

play00:55

But what can happen, what an attacker can do

play00:59

is they can reroute traffic on the internet.

play01:01

It's not easy to do, but it  has been done in the wild,

play01:04

and they can direct the resolver,

play01:06

instead of going to ibm.com,  to go to the bad DNS server.

play01:14

The bad DNS server can then return -

play01:17

so it doesn't go here, instead  it goes to the bad DNS server -

play01:20

can then return a bad IP address

play01:28

back to your user, and then  they're sent to the bad website.

play01:34

At the bad website their  credentials can be harvested

play01:38

for malicious ends because  their password is taken.

play01:40

Maybe you're a financial institution and  someone can empty their bank accounts.

play01:44

Everything, bad things happen  if you allow an attacker

play01:50

to insert a bad DNS server in  the midst of the transaction,

play01:54

which sends the user to a malicious website.

play01:59

DNSSEC was created to prevent  this type of thing from happening.

play02:03

DNSSEC does three things.

play02:06

First, it does origin authentication.

play02:11

Second, it implements data integrity checking.

play02:17

And third, it implements  authenticated denial of existence.

play02:21

And we'll talk about what each of these things are

play02:24

in a little more depth as we go through this.

play02:27

So that's why you should care about DNSSEC

play02:30

and what DNSSEC can do for you.

play02:35

Now let's get into some  details about how DNSSEC works.

play02:39

So imagine you're a user again.

play02:43

Up here.

play02:43

He he's also looking for ibm.com.

play02:49

And he also talks to his resolver.

play02:54

Goes out to the root zone,

play02:56

to the TLD authoritative server,

play02:59

and to the ibm.com server.

play03:03

But now we have DNSSEC enabled,  so when he goes to there

play03:08

it is validated.

play03:10

And so we validated that we're  talking to the root server.

play03:12

So we've got the origin authentication.

play03:15

And we validate that the answer we got back

play03:17

is the correct answer.

play03:19

Then he talks to the TLD server.

play03:21

And, same thing, validates he's  talking to the correct server.

play03:24

So stopping the bad DNS server from  being injected into the conversation

play03:30

and he validates he gets the right answer back.

play03:33

And finally we talked to the ibm.com server

play03:36

and validate that we get the correct answer back.

play03:40

That's a high level  explanation of how DNSSEC works

play03:45

and why you should care about it.

play03:47

The one thing I haven't talked about yet  is authenticated denial of existence.

play03:51

So let me just mention that real quickly here.

play03:54

The idea of authenticated denial of existence

play03:56

is if I ask for a name that doesn't  exist, let's say foo.ibm.com,

play04:02

and then I talk to the ibm.com name server.

play04:05

It's going to return to me an answer.

play04:09

It's going to say foo doesn't exist.

play04:12

I don't know what foo is.

play04:14

How do I know that foo really doesn't exist?

play04:16

And that's what authenticated  denial of existence does.

play04:19

It's a method so that the  resolver can validate that when

play04:24

the ibm.com server says foo doesn't exist,

play04:26

it really knows that foo doesn't exist,

play04:29

and it's able to put a check mark on that as well.

play04:33

So now let's dive a little bit  deeper into how DNSSEC really works.

play04:39

There's one technology that  undergrids all of DNSSEC,

play04:45

and that's public key cryptography system, PKCS.

play04:51

That's the idea that you can  have a public private key pair

play04:56

such that when you encrypt  something with the private key,

play04:58

which you keep private,

play05:01

and publish the public key out on the  internet, or give it to other people,

play05:05

that when they decrypt the  item with the public key,

play05:08

it validates that the owner of the private  key was the one that created that item.

play05:14

And it can be used for a number of functions.

play05:16

There's other videos you can watch that  go into a lot more detail about PKCS,

play05:20

but essentially it allows us to implement

play05:22

the origin authentication, data integrity,  and authenticated denial of existence checks.

play05:27

Let's talk about exactly how that works.

play05:29

So there is a new record type

play05:32

that was introduced to DNS called the DNS key.

play05:37

The DNS key has two subtypes.

play05:41

One is called a KSK.

play05:47

And the other is called the ZSK.

play05:50

The ZSK, we'll talk about  first, is used to sign the zone.

play05:54

That's why it's a 'Z', for Zone Signing Key.

play05:58

And the way that works is if  I have a record in the zone,

play06:02

let's say ibm.com is my record in my zone.

play06:05

It's got an IP address, say 9.9.9.1,  let's say is the IP address.

play06:12

Then I want to have a way to validate

play06:16

that this is really the correct  answer or the right answer

play06:19

when it's returned back to the user.

play06:22

So we created this record type called an RRSIG.

play06:28

And it's a way to cryptographically  sign or authenticate

play06:32

that this is the answer, so that  when this answer was returned,

play06:37

it really is the answer from this server,

play06:39

so the origin authentication,  and it hasn't been changed.

play06:43

The RRSIG was created using the  public key in the zone signing key.

play06:51

Now, then the question is,

play06:53

how do I know that this is really  the public key of the ibm.com server?

play06:57

That's where the KSK comes in.

play06:59

The KSK is also a public key.

play07:02

It's used to sign the zone signing key.

play07:07

Then we get into the chain of trust.

play07:09

The KSK is known to belong to ibm.com.

play07:13

Because I've put what's called  a DS record up at the TLD.

play07:18

The DS record stands for Delegation Signer.

play07:21

That is a hash of this KSK.

play07:26

So that when the resolver  is going through the chain,

play07:30

going through its resolution chain,

play07:32

and it gets to the TLD level,

play07:34

it pulls down the delegation signer record.

play07:38

Then it next goes to the ibm.com level,

play07:41

it pulls a copy of the KSK  and then compares the two.

play07:45

And if they match then it knows that the KSK

play07:51

at the ibm.com level really  does belong to ibm.com,

play07:54

and thus we've validated that we're  talking to the correct server.

play07:59

The same thing happens to the next level up.

play08:01

The root has a DS record that points at the TLD.

play08:05

The same process occurs.

play08:07

The DS record is read,

play08:08

compared to the KSK at the TLD level,

play08:11

and then everything is validated.

play08:14

Up at the root there's actually  a file that is downloaded offline

play08:19

by the ... when you set up a  resolver, you download that file

play08:23

to start the chain of trust and validate

play08:26

that you're really talking to  the legitimate root server.

play08:31

One more record type that was created for DNS SEC

play08:35

is called the NSEC record.

play08:38

For "next secure".

play08:39

The NSEC record is what's used for  this authenticated denial of existence.

play08:44

It's the record type that's  returned when the answer is unknown.

play08:47

And it validates that yes, indeed, we  don't have a record type named Foo.

play08:56

So that's how DNSSEC works in detail.

play08:59

Those are all the new record types  that you need to worry about.

play09:02

Now, let's talk about how you can get  started on your own to implement DNSSEC.

play09:10

The first thing you want to do  is you want to sign the zone.

play09:14

What that means is you create the all  the new record types I mentioned here.

play09:19

You create a ZSK.

play09:21

You create a KSK.

play09:24

And then you create the RRSIGs.

play09:28

Depending on your software, the  way you do this will be different.

play09:31

For some open source software,  if you're running your own DNS,

play09:34

this will be a manual process.

play09:36

For some of the manage DNS services out there,

play09:39

you'll essentially flip a switch  and all this will be done for you.

play09:43

Then second step is you want to test.

play09:46

This is a really important point.

play09:48

I would highly recommend that  after you set up all the keys,

play09:54

all the new records that you test,

play09:56

there's a number of open source  tools out on the internet

play09:59

and websites that you can go to that will validate

play10:02

that your DNSSEC is set up  correctly and you have no errors.

play10:05

Test, make sure you get rid of all the errors,

play10:08

and then finally you want to go to your  registrar and set up the DS record.

play10:13

That's what actually enables DNSSEC.

play10:16

Up until this point DNSSEC,  all the records are there,

play10:19

but the resolvers are not  actually validating the answers

play10:24

because they need the DS  record to do that validation.

play10:28

So until you put that DS record  in place, nothing's live.

play10:32

The system is just ready to go.

play10:34

As soon as you contact your registrar  and put the DS record in place,

play10:38

the whole thing spins up, and  now DNSSEC is in operation.

play10:44

And whenever a user goes to a validating resolver,

play10:48

DNSSEC will be checked

play10:50

and it will prevent the  scenario that we saw over here

play10:53

where a malicious player inserted a bad DNS server

play10:56

and redirected your server to a malicious site.

play10:58

So I hope you can get started on DNSSEC

play11:02

and protect your websites and applications.

play11:05

If you like this video and  want to see more like it,

play11:08

please like and subscribe.

play11:10

If you have any questions or want to  share your thoughts about this topic,

play11:13

please leave a comment below.

Rate This

5.0 / 5 (0 votes)

相关标签
DNS securityDNSSEC setupcybersecuritydata integritypublic keynetwork protectionsecure DNSinternet safetyzone signingwebsite protection
您是否需要英文摘要?