Top Banner
OpenDNSSEC training Opening 2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 1
154

OpenDNSSEC training

Dec 09, 2016

Download

Documents

hoangphuc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OpenDNSSEC training

OpenDNSSEC training

Opening

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 1

Page 2: OpenDNSSEC training

Agenda

Time: Day 1: 10:00 – 17:00, Day 2: 09:00 – 16:00

• Introduction to DNSSEC and the OpenDNSSEC application • Prerequisites for running OpenDNSSEC and description of the lab

environment • Hardware Security Modules • SoftHSM installation and initialization • Configuration files for ODS, conf.xml , kasp.xml and zonelist.xml • Running OpenDNSSEC • Testing • Integration • Monitoring • Recovery planning • Operational practices

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 2

Page 3: OpenDNSSEC training

Introduction

• Who am I?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 3

Page 4: OpenDNSSEC training

Introduction

• Who are you?

• Any experience with DNSSEC?

• What are your expectations?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 4

Page 5: OpenDNSSEC training

Goals

• Understanding of DNSSEC

• OpenDNSSEC

• Install

• Configure

• Sign zones

• Integrate with your environment

• Basic troubleshooting

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 5

Page 6: OpenDNSSEC training

Lab environment

• Amazon Elastic Compute Cloud (EC2)

• One teacher server running odslab.se

• Two servers per group

• Resolver – resolverX.odslab.se

• Name server – nsX.odslab.se

• One domain per group

• groupX.odslab.se

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 6

Page 7: OpenDNSSEC training

The lab

• Handouts with lab instructions

• Most of the labs are introduced by a presentation

• Group numbers and login credentials are handed out by the teacher

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 7

Page 8: OpenDNSSEC training

OpenDNSSEC training

Uploading the DS RR

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 8

Page 9: OpenDNSSEC training

Head start

• We need to create a chain-of-trust to our test domain, odslab.se.

• .SE distributes its zone every second hour (but are allowed to take up to five days).

• Need to this so that you can validate your subzones later in this lab.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 9

Page 10: OpenDNSSEC training

Uploading the DS RR

• Creates a chain-of-trust.

• You do this when your zone is signed.

• We have prepared odslab.se, it is already signed.

• How you upload the DS RR depends on your registrar.

• Various APIs and web interfaces, some does not even support DNSSEC.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 10

Page 11: OpenDNSSEC training

Live demo

• odslab.se is using the registrar SE Direkt.

• https://domanhanteraren.iis.se/lang/?set=en

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 11

Page 12: OpenDNSSEC training

OpenDNSSEC training

DNSSEC introduction

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 12

Page 13: OpenDNSSEC training

The DNS Hierarchy

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 13

. (root)

. NS a.root-servers.net.

a.root-servers.net. A 198.41.0.4

. NS d.root-servers.net.

d.root-servers.net. A 128.8.10.90

. NS m.root-servers.net.

m.root-servers.net. A 202.12.27.33

.net .com

.org

org. NS b0.org.afilias-nst.org.

b0.org.afilias-nst.org. A 199.19.54.1 org. NS d0.org.afilias-nst.org.

d0.org.afilias-nst.org. AAAA 2001:500:f::1

opendnssec.org

opendnssec.org. NS ns.kirei.se.

opendnssec.org. NS primary.se.

opendnssec.org. NS secondary.se.

www.opendnssec.org. A 91.206.174.13

Page 14: OpenDNSSEC training

Resolving DNS

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 14

Client computer

DHCP server

Caching resolver

1. www.opendnssec.org?

. (root)

.org

opendnssec.org

2. www.opendnssec.org?

4. www.opendnssec.org?

6. www.opendnssec.org?

3. Ask a0.org.afilias-nst.info

5. Ask ns.kirei.se

7. www.opendnssec.org has address 91.206.174.13

8. www.opendnssec.org has address 91.206.174.13

Page 15: OpenDNSSEC training

Vulnerabilities

• You cannot trust the DNS answer

• Various categories of threats

• Denial of Service

• Data integrity • Protocol issues – Cache poisoning, Query prediction

• System corruption

• Repository corruption

• Privacy • Cache snooping

• NSEC walk

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 15

Page 16: OpenDNSSEC training

What is DNSSEC?

• Domain Name System Security Extension

• An extension that is placed on top of DNS

• It gives:

• Data Origin Authentication

• Data Integrity

• Denial of Existence

• By using digital signatures

• Fixes some of the protocol issues

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 16

Page 17: OpenDNSSEC training

Add crypto to the mixture

• Asymmetric crypto: • Asymmetric key pairs have a public and private key

• Protect the private keys

• Publish the public keys

• KSK: • The Key Signing Key - what you trust

• Signs the Zone Signing Keys, ZSK

• ZSK: • The Zone Signing Key

• Creates signatures of records in the zone - RRSIG

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 17

Page 18: OpenDNSSEC training

DNSKEY and RRSIG opendnssec.org. IN DNSKEY 256 3 5 BQEAAAAB2WMDxqWR7cCadFXQmmR3jhfHekKf5uhUVxBFyzHGyHc1vVi0 u4w3Z+/96anmn+oTzuxGmYOPm3j+3AfatV3USD8b4DdkM35aNZ2iMyXd lMFb+OgPUODl71nnxp2KGFu8oWtILLJMOAo5giitUpMFWmGAKJH/BbWh WydF1fKwLuk=

opendnssec.org. IN DNSKEY 257 3 5 BEAAAAOhdFlVHeivG77Zos6htgLyIkBOn18ujX4Q7Xs6U7SDQdi6FBE5 OQ8754ppfuF3Lg1ywNLHQ5bjibquSG7TuCT6DWL3kw+hESYmWTeEev9K RnxqTA+FVIfhJaPjMh7y+AsX39b8KVQ32IYdttOiz30sMhHHPBvL4dLC 4eCQXwUbinHRWSnKpKDXwuaUUtQkPqkEc4rEy/cZ3ld408vMlcc73OcK t+ttJeyQR1dJ0LoYHvH0WBzIWg3jUPmz/hSWrZ+V2n0TISQz0qdVGzhJ vahGvRstNk4pWG1MjwVgCvnc18+QiEV4leVU7B4XjM9dRpIMzJvLaq+B d8CxiWvjpSu/

opendnssec.org. IN RRSIG DNSKEY 5 2 3600 20110705003007 20110625003007 40957 opendnssec.org. PXW2Zj3HM2annBMGGHormcyIUZF4s+KZIKynoNfSyqHmiTghUDxVUStF tzp88ZlHLV+0CYQU4zY20RI9kGg7Iwc+jF8BGjoJfIrNtt6ado9sBrqD znK/fal6fsFl7HuhRke68P5mwQETKOTV3S0Tcfz6krmqofbTAq5qwkqf CBX4Wm6csZHWVF+pUlNhPumJpbnI6mHNcRvVSx07D3TGRT4ZF/1s38md GaFkSKc2zxgGCOSyWfUml93AQ5Zox+l1hfGr3NZd7MAynklwZSrY/JzK mUN24n2wmjrNNFaQuXbjO2T+Mqm2PB3yweYxyh2kKryf5Oc3tkglr1jP zsuoWg==

opendnssec.org. IN RRSIG DNSKEY 5 2 3600 20110705003007 20110625003007 49829 opendnssec.org. BlZZUWXTpQ8Ur0MBJxgHASarKfWREOTABaW+d/zIaFtUjhicQUjm2IUx 4O84gxslKvk/uhwfm0qYII+Mlz3IX93e6Ml8EC+O/0zFPEXjwQRmHplC +qjyOAONHOfyqG0El+da33tr+E+VBtigTN5GyqSDfZ/zuPRkiYr8Uxzg CJ0=

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 18

Page 19: OpenDNSSEC training

Signatures?

• A signature is an encrypted hash of data.

• The key used for encryption is the private key, and the signature can be verified by decrypting the hash with the public key.

• A hash is a checksum of a set of data. Typical checksum algorithms are MD5, SHA-1 and SHA-256. MD5 is considered vulnerable.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 19

Page 20: OpenDNSSEC training

DNSKEY algorithms

• Different DNSSEC algorithms:

• RSAMD5

• DSA

• RSASHA1

• DSA-NSEC3-SHA1

• RSASHA1-NSEC3-SHA1

• RSASHA256

• RSASHA512

• ECC-GOST

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 20

Page 21: OpenDNSSEC training

NSEC

• Proof of non-existence

• You want to protect anybody from performing a DoS attack against a name in DNS. That is done with NSEC.

mail.opendnssec.org. IN NSEC svn.opendnssec.org. CNAME RRSIG NSEC

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 21

Page 22: OpenDNSSEC training

NSEC3

• NSEC makes zone walking possible

• Uses the hash of the domain name

• Requires more resources from resolver and the name server.

7oreb1sb9elhfqfp53bqqde6bcdm5eo3.groupx.odslab.se. IN NSEC3 1 0 5

3A5BF749D1330DE3OTANAROMKJB00QC2G6K2IT2GU2SB4DOA CNAME RRSIG

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 22

Page 23: OpenDNSSEC training

Zone file without DNSSEC

$TTL 60

@ IN SOA nsX.odslab.se. test.odslab.se. (

2011062100 ; serial

360 ; refresh (6 minutes)

360 ; retry (6 minutes)

1800 ; expire (30 minutes)

60 ; minimum (1 minute)

)

IN NS nsX.odslab.se.

www IN CNAME nsX.odslab.se.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 23

Page 24: OpenDNSSEC training

Zone file with DNSSEC groupX.odslab.se. 60 IN SOA nsx.odslab.se. test.odslab.se. (

2011062145 ; serial

360 ; refresh (6 minutes)

360 ; retry (6 minutes)

1800 ; expire (30 minutes)

60 ; minimum (1 minute)

)

groupX.odslab.se. 60 IN RRSIG SOA 8 3 60 20110628103724 (

20110628083552 44494 groupx.odslab.se.

NJ5lIdcdw3TJlSjTd5W/Gk1CtgZu2VfXAVIF49em/jdm

pA1JnejkwPAfb0TjdcXBUH6cQ2XIHobjgEJEpWRM9G/W

W7DYJZmdo6o09YrMexTLCZLcq6eyjTpS8TmwmconuNEN

FiCkBztqgHlyw0Teg9sw/1E0UVwGKKgd0SOv8Nw= )

groupX.odslab.se. 60 IN NS nsx.odslab.se.

groupX.odslab.se. 60 IN RRSIG NS 8 3 60 20110628103609 (

20110628083552 44494 groupx.odslab.se.

K3Yxcz25nv0m8SZDHkh0YXPBrZ0+78hVsT7FD4A9GZ9m

3sHpkpfzjZ/Bee+lgwZZGIJKmMfyRtQQon7oCa2Z9xe9

L/D9KQzPzZbZCMrOxG/usSZ+LhwYuN3b0Kl2BIhklji5

fBN6aEsyhw+hiV9ibobzqKe5bMnxaa9IfMscV1c= )

groupX.odslab.se. 120 IN DNSKEY 256 3 8 (

AwEAAasv0uyeTp5kIaw/fwPyQncY06YMn370lczC5SCx

veUNQXLhihm+tV/lTvkWd5GHg/ebjTPSR6mqB/jTu7CH

/iNhprxdnh3lVW7FjFpC5tDfFiHyDM97q8A+4lnBmiB4

SZJR1qOGmeoiU2BP2uyTlv31KJPDm08GwmPTTX8fi3LV

) ; key id = 44494

groupX.odslab.se. 120 IN DNSKEY 257 3 8 (

AwEAAc6Wk/UqaEMaytXWL2y25I0Z8UuubnkrufaJEEBw

niObHaNGMscp5I5207ScB6L70DJS46S9bA4k8mbcRNPA

Vi0OQVz1kFTTNt45XzYQ7yaQJyobQdFtVq8TXtaFPiFP

S7nz7ga8/HVW8VNRp4H5iajsgh4LCX+399tJX+rk613R

tbnHVvZPOUiuZNFqZLOkbzGtNRbl4UvoRQi5q+tjV/ow

cUkn8tljQGPpTe/HLImUT+MrftnY6m8jvgO+qhd2o/1Z

6XZcVBuDB+UGrhFcU72HmeKfQHMtCuGZhmWOcOymPcDJ

12ONkBqgj28Cu/4Kr44DMTu4q2ax07dDOfSyKqM=

) ; key id = 62246

groupX.odslab.se. 120 IN RRSIG DNSKEY 8 3 120 20110628103715 (

20110628083552 62246 groupx.odslab.se.

Tw32FOW95e86g0FYxyXu3nDQNTdAELxVhg4BVoRA2RWx

iAgkZk/XQRUfozjd/qNNjrIA2+a9wwrvLWokRB6xzSTR

bwx199Mu8Xj9p9Q8CbzCvbvHPtRqPgf6Mto9jjlUaSK4

NlNQWg/qfsLvkvxRpdE4g9Xac3b71TPuylQSovvARR0v

4rJ4zmBdomdQHjtwOuQ4GeVfpgKqFCqa8HFK8D20Kmjk

56a7rbe6UWt5hHMjQfys3NfvulFAdCTW0Rbikss7YQMw

j6msmsRS8Zj+IlBbmku6RwxVxNF/ca09fuz4NhyOOSRP

2mBTBIwk+XcybA6vK5ofnrBTCSSoJOt4+g== )

groupX.odslab.se. 60 IN NSEC3PARAM 1 0 5 3A5BF749D1330DE3

groupX.odslab.se. 60 IN RRSIG NSEC3PARAM 8 3 60 20110628103502 (

20110628083552 44494 groupx.odslab.se.

Gvy1AOrm6dENvVUke1Ck3KmjB5W1mbvIsFdvm2p2MfZa

msgUJNJ0sT6R3jIyRIvc+6T3jADDHGpvr6ILLnWySFRb

9efAn/SDt060N3YsU6emv5iAh/TRbo7g8UNtokm1TAds

5rZ187cOo3yqQ05qBSTVo8wCcF1HS6+htEt+vQs= )

www.groupX.odslab.se. 60 IN CNAME nsx.odslab.se.

www.groupX.odslab.se. 60 IN RRSIG CNAME 8 4 60 20110628103414 (

20110628083552 44494 groupx.odslab.se.

BAs7KPVdwoPeC9isn/N00dV2OB62sSjbQS65r6h8EOGF

ToRqd6wRpd8OhNSNrJNn7ycH61m2j71WhE00fsMLA1T6

vxGKVcK6IeH+7Vpu4bgnH93jq8f3TftaiR22bYNl+Y9Q

Y7PHNFcmZ0PmoqVmilmtJdpn+YNjUJ5a+Riwojo= )

7oreb1sb9elhfqfp53bqqde6bcdm5eo3.groupx.odslab.se. 60 IN NSEC3 1 0 5 3A5BF749D1330DE3

OTANAROMKJB00QC2G6K2IT2GU2SB4DOA CNAME RRSIG

7oreb1sb9elhfqfp53bqqde6bcdm5eo3.groupx.odslab.se. 60 IN RRSIG NSEC3 8 4 60

20110628103552 (

20110628083552 44494 groupx.odslab.se.

azU2yBsLQNXANwyTxosI4hwf6JPfV5XKNdPtQzGprShE

w6N/sDG9QzMJjlQrPW82rY2SYl7xGJMBGdfsGVBZJJQ4

nXBmwnjT5Grm9k/a0hyCmYYAHzoq4ixV5fLDYrH8af/u

uvoFs90vJlN4OMbHNJUrNSsCsJRzps/k0/aH+0w= )

otanaromkjb00qc2g6k2it2gu2sb4doa.groupx.odslab.se. 60 IN NSEC3 1 0 5 3A5BF749D1330DE3

7OREB1SB9ELHFQFP53BQQDE6BCDM5EO3 NS SOA RRSIG DNSKEY NSEC3PARAM

otanaromkjb00qc2g6k2it2gu2sb4doa.groupx.odslab.se. 60 IN RRSIG NSEC3 8 4 60

20110628103526 (

20110628083552 44494 groupx.odslab.se.

QLlN/6CjlkU609P9/AntqRFHWAKJ8PUIS53HOZfN9D6P

PZEr/7dd+jlv2sgXmIYx/0VXySr4Bafgm8+k0fwEU+JY

TjmfkLUOD6O9DOQ/RqNtLp5HFH6TLMZxO7VdFr9vEZq1

5UIUQjIFT2+aQR3Dd/QMq26ysHGqOApSH/wkq6Y= )

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 24

Page 25: OpenDNSSEC training

Fingerprints

• A fingerprint is a checksum of a key. Fingerprints are often published instead of a key because it is much shorter than a key, and more easy to read.

BEAAAAPFUp17Etwawvfg7DV5k7mkdLGn42PcFcXyXOWr

rStBNWF2q6af2WOxMwlPqPb8bBKmm5QZErTZLuhgDVE8

KuPdnsxF90+pV2y9eB3+FIjDjQfo1xKcxAjRMaKkSrCA

WRA0PplQu2AfZW7q/MZK3O6uCwqp7xv4/nblU2PoVKpn

KXX6xkIhfbM/K/jnBJqprmBfzR+WcFLuP56Bf49/Vdv7

LRnDjuXWoRQ7gu7/W72fzXwOwy5DqRf0G7iKIltEZOjp

M8nROvp3w35naNLC6o0bbgw1MlE3sOAn8IiLLw+Kn7kJ

kfB1uGPUzqdf1wSx0wcfBaRnnPQdlnH80OGRBdDN

A1B8B850CAA2D3C595D5617DB5ADE18989CC542CD15B9B0236E7D3752AAC2946

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 25

Page 26: OpenDNSSEC training

DS records

• DS - Delegation Signer

• A DS record (the hash of the DNSKEY) is published at the parent zone to delegate trust to the child zone.

• This is what is published for opendnssec.se at .se: opendnssec.se. IN DS 27295 5 1

5AEF372D65BC594A7AF5E0E77CDDA55E0C43A56A

opendnssec.se. IN DS 27295 5 2

A1B8B850CAA2D3C595D5617DB5ADE18989CC542CD15B9B0236E7D3752A

AC2946

• Two DS records - two algorithms are used for .se, SHA-1 and SHA-256

• The DS are signed by the parent

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 26

Page 27: OpenDNSSEC training

Key rollovers

• Key can be removed and added

• The rollover process must follow a set of rules

• Different states

• E.g. pre-published, active, and post-published

• The software will assist you

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 27

Page 28: OpenDNSSEC training

Components in DNS

• Name server

• The signer can be integrated in the name server or act as a separate component in the distribution chain.

• Resolver

• Needs to understand DNSSEC and be configured with a trust anchor.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 28

Page 29: OpenDNSSEC training

Resolver

• BIND

• Unbound

• Windows 2008 R2

• …

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 29

Page 30: OpenDNSSEC training

Name server

• BIND

• NSD

• Windows

• PowerDNS

• djbdns

• …

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 30

Page 31: OpenDNSSEC training

DNSSEC signing software

• BIND

• OpenDNSSEC

• PowerDNS

• …

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 31

Page 33: OpenDNSSEC training

Start verifying signatures

• Get the root trust anchor from IANA.

• Verify its authenticity

• Configure BIND:

managed-keys {

<INSERT KEY>

};

options {

dnssec-enable yes;

dnssec-validation yes;

};

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 33

Page 34: OpenDNSSEC training

Resolving DNS

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 34

Client computer

DHCP server

Caching resolver using DNSSEC

1. www.opendnssec.org?

. (root)

.org

opendnssec.org

2. www.opendnssec.org? +do

4. www.opendnssec.org? +do

6. www.opendnssec.org? +do

3. Ask a0.org.afilias-nst.info

5. Ask ns.kirei.se

7. www.opendnssec.org has address 91.206.174.13

8. www.opendnssec.org has address 91.206.174.13

DS DNSKEY

RRSIG

DNSKEY DS RRSIG

RRSIG DNSKEY

Page 35: OpenDNSSEC training

OpenDNSSEC training

OpenDNSSEC Architecture

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 35

Page 36: OpenDNSSEC training

What?

• OpenDNSSEC is a zone signer that automates the process of keeping track of DNSSEC keys and the signing of zones.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 36

Page 37: OpenDNSSEC training

Why?

• The available DNSSEC tools were lacking:

• Good key management

• Policy handling

• Hardware acceleration

• Etc.

• DNSSEC should be easy to deploy

• Increase the number of DNSSEC users

• Experience from previous DNSSEC operations

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 37

Page 38: OpenDNSSEC training

Who?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 38

(The logos belongs to the individual organizations and are not covered by this CC license)

Page 39: OpenDNSSEC training

About OpenDNSSEC

• Simplifies the process of signing one or more zones

• Reducing the work load on the system administrator

• Open source software with a BSD license

• Simple to integrate into existing infrastructure

• Key storage and hardware acceleration using PKCS#11

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 39

Page 40: OpenDNSSEC training

Bump-in-the-Wire

• In many cases, anticipate that OpenDNSSEC will be employed on a system between a hidden and public master.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 40

Page 41: OpenDNSSEC training

Architecture

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 41

Page 42: OpenDNSSEC training

Key and Signing Policy

• How to sign a zone is described by a policy

• Allows choice of key strengths, algorithm, key and signature lifetimes, NSEC/NSEC3, etc.

• Can have anything between one policy for all zones to one policy per zone.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 42

Page 43: OpenDNSSEC training

KASP Enforcer

• Handles the management of keys:

• Key creation using HSM

• Key rolling

• Chooses the keys used to sign the zone.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 43

Page 44: OpenDNSSEC training

Signer Engine

• Automatic signing of the zones • Can reuse signatures that are not too old

• Can spread signature expiration time over time (jitter)

• Maintains the NSEC/NSEC3 chain

• Updates SOA serial number

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 44

Page 45: OpenDNSSEC training

KASP Auditor

• Checks that the Signer and Enforcer work the way they are supposed to, e.g. • Non DNSSEC RRs are not added or removed • Policy is being followed

• Can stop the zone distribution if needed • Written in Ruby

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 45

Page 46: OpenDNSSEC training

Daemons

• Enforcer

• ods-enforcerd

• Signer Engine

• ods-signerd

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 46

Page 47: OpenDNSSEC training

CLI

• General

• ods-control

• ods-kasp2html

• Enforcer

• ods-ksmutil

• Signer Engine

• ods-signer

• Auditor

• ods-auditor

• ods-kaspcheck

• HSM

• ods-hsmspeed

• ods-hsmutil

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 47

Page 48: OpenDNSSEC training

HSMs

• Why should you use one?

• Security (FIPS) • The private keys are stored securely in the HSM

• You know where your keys are

• Speed • 1 – 13,000 signatures per second

• Are they expensive?

• $50 - $50,000

• Remember to protect the host

• Garbage in -> Garbage out

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 48

Page 49: OpenDNSSEC training

• SoftHSM is a software-only implementation of an HSM using the PKCS#11 interface

• Can be used to test the PKCS#11 interface without buying a real HSM.

• Uses Botan and SQLite.

• SoftHSM makes it possible to use OpenDNSSEC in a software-only environment.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 49

Page 50: OpenDNSSEC training

Input and Output Adapters

• Input adapter supplied as part of OpenDNSSEC - accepts AXFRs, responds to NOTIFYs.

• Output adapter not supplied - any preferred nameserver can be used (BIND, NSD, etc.)

• Can configure command to be used to reload zone.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 50

Page 51: OpenDNSSEC training

OpenDNSSEC training

Installing OpenDNSSEC

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 51

Page 52: OpenDNSSEC training

Hardware

• CPU

• Worker threads – Handle multiple zones at a time

• Signer threads – Maximum performance from the HSM

• HDD

• Backup copy of the unsigned and the signed zones

• Memory

• The signed zones are stored in memory

• May be doubled temporarily before the changes are committed

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 52

Page 53: OpenDNSSEC training

Platform support

• OpenDNSSEC has been tested on various platforms:

• Debian

• FreeBSD

• Gentoo

• Mac OS X

• NetBSD

• OpenBSD

• Red Hat Enterprise Linux

• Solaris

• Ubuntu

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 53

Page 54: OpenDNSSEC training

Pre-built binaries

• OpenDNSSEC are or will be available as packages for the following systems:

• Debian

• FreeBSD

• Gentoo

• NetBSD

• Ubuntu

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 54

Page 55: OpenDNSSEC training

Dependencies

• ldns

• libxml2, libxml2-dev, libxml2-utils

• ruby, rubygems, dnsruby, libopenssl-ruby

• sqlite3, libsqlite3, libsqlite3-dev

• (mysql-client, libmysqlclient15, libmysqlclient15-dev)

• libbotan (SoftHSM)

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 55

Page 56: OpenDNSSEC training

Obtaining the source code

• Tarballs:

• www.opendnssec.org

• SVN: • svn co http://svn.opendnssec.org/ ods-svn

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 56

Page 57: OpenDNSSEC training

Building the code

• Follow the lab instructions on how to build the code

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 57

Page 58: OpenDNSSEC training

OpenDNSSEC training

Hardware Security Modules

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 58

Page 59: OpenDNSSEC training

WHAT IS AN HSM?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 59

Page 60: OpenDNSSEC training

What is an HSM?

• Protected keystore

• Private keys can never be extracted in clear

• Crypto hardware

• Sometimes increases speed (but not always)

• Well-defined software interface

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 60

Page 61: OpenDNSSEC training

Protected keystore

• Keys stored in tamperproof memory

• If you mess with the chip, the device will (try to) detect it and zeroize

• Implemented using

• Covering components in epoxy

• Thin wires covering sensitive components

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 61

Page 62: OpenDNSSEC training

Crypto hardware

• Hardware to assist accelerate symmetric and asymmetric crypto

• RSA, DSA, AES, 3DES

• Good random number generator

• Hashing is often implemented in the host

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 62

Page 63: OpenDNSSEC training

API

• PKCS#11 (aka Cryptoki)

• OpenSSL Engine

• Microsoft CAPI

• Java Cryptography Extension

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 63

Page 64: OpenDNSSEC training

Stacked APIs are possible…

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 64

Page 65: OpenDNSSEC training

PKCS#11

• E.g.:

• C_Initialize

• C_GetSlotList

• C_OpenSession

• C_Login

• C_GenerateKeyPair

• C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal

• C_SignInit, C_Sign

• C_Finalize

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 65

Page 66: OpenDNSSEC training

WHY USE AN HSM?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 66

Page 67: OpenDNSSEC training

What is the risk?

• Keys can be compromised by…

• Compromised hosts

• Disgruntled staff

• Math

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 67

Page 68: OpenDNSSEC training

How to lower the risk?

• Protect the host itself

• But some sort of remote management is usually needed anyway

• Protect the private keys

• Move keys to HSM

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 68

Page 69: OpenDNSSEC training

Residual risk

• Keys can still be misused

• If you can use a key, you can also misuse it

• Garbage in -> Garage out

• If you feed it a bad zone – the result is still a signed bad zone

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 69

Page 70: OpenDNSSEC training

Increase trust?

• Using an HSM increases trust – Why?

• Standards compliance

• Verifiable security – e.g. FIPS 140-2

• Also provides a clean cut between keystore and signing software

• You know where your keys are (and not are)

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 70

Page 71: OpenDNSSEC training

THE BUYER’S GUIDE TO HARDWARE SECURITY MODULES

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 71

Page 72: OpenDNSSEC training

Types of HSMs

• Local interface – e.g. PCI cards

• Remote interface – e.g. Ethernet

• Sharable between multiple hosts

• Smart cards

• USB tokens

• usually a smart card with integrated reader

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 72

Page 73: OpenDNSSEC training

Algorithms and key sizes

• What algorithms are supported

• RSA recommended, DSA and GOST optional

• What key sizes are supported

• Minimum key size ≤ 1024 bits recommended

• Maximum key size ≥ 2048 bits recommended

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 73

Page 74: OpenDNSSEC training

Capacity

• How many keys can be stored?

• Where are the keys stored?

• Internal keystore

• External keystore (encrypted by a master key)

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 74

Page 75: OpenDNSSEC training

API

• What API do you need?

• PKCS#11, OpenSSL, MS-CAPI, JCE

• What platforms are supported?

• Mind details like Linux kernel versions, distributions etc.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 75

Page 76: OpenDNSSEC training

Speed

• Signing speed – RSA

• Usually measured in 1024-bit signing operations (with public exponent 3 or 65537) per second.

• Key generation speed – RSA

• Usually the average key generation time for 1024-bit and 2048-bit keys per second.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 76

Page 77: OpenDNSSEC training

Security certifications

• FIPS 140-2

• Federal Information Processing Standard

• CC-EAL

• Common Criteria Evaluation Assurance Levels

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 77

Page 78: OpenDNSSEC training

FIPS 140-2

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 78

Level Requirement

1 Basic security requirements

2 Tamper evidence, user authentication

3 Tamper detection/resistance, data zeroisation, splitting user roles

4 Very high tamper detection/resistance, Environmental protection

Page 79: OpenDNSSEC training

CC-EAL

• What Protection Profile (PP) has been used for the Target of Evaluation (TOE)?

• CMCKG-PP – Key Generation

• CMCSO-PP – Signing Operations

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 79

Page 80: OpenDNSSEC training

Key backup

• How do you backup your keystore?

• Can you restore a backup elsewhere?

• e.g. on a hot-standby site

• Split key backup possible?

• Well-known backup format?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 80

Page 81: OpenDNSSEC training

OPENDNSSEC AND HSMS

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 81

Page 82: OpenDNSSEC training

HSMs

• The following Hardware Security Modules (HSM) has been confirmed to work with OpenDNSSEC:

• AEP Keyper

• Aladdin eToken

• Athena Smartcard Solutions IDProtect

• OpenSC Smart Cards

• Safenet Luna SA

• Sun Crypto Accelerator 6000 (SCA/6000)

• Thales nShield Connect

• Utimaco SafeGuard CryptoServer

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 82

Page 83: OpenDNSSEC training

Review

• Conducted a review of four different HSM:s

• AEP Keyper v2

• SafeNet Luna SA 4.4

• Thales nShield Connect 6000

• Utimaco CryptoServer Se1000

http://www.opendnssec.org/wp-content/uploads/2011/01/A-Review-of-Hardware-Security-Modules-Fall-2010.pdf

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 83

Page 84: OpenDNSSEC training

OpenDNSSEC training

OpenDNSSEC configuration

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 84

Page 85: OpenDNSSEC training

XML-files

• conf.xml Used for overall configuration of the system

• kasp.xml Defines the various policies for signing zones

• zonelist.xml Zones that will be signed using a policy

• zonefetch.xml for transferring/fetching zones

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 85

Page 86: OpenDNSSEC training

XML-files

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 86

/etc/opendnssec/conf.xml

kasp.xml zonelist.xml zonefetch.xml

Page 87: OpenDNSSEC training

P[n]Y[n]M[n]DT[n]H[n]M[n]S

• OpenDNSSEC is about durations (periods), not about absolute times.

• The format of periods is as above

• P1DT12H is 1 day and 12 hours

• No clue about Gregorian Calendar

• P1M is considered 1 month (always 31 days)

• P1Y is considered 1 year (always 365 days)

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 87

Page 88: OpenDNSSEC training

conf.xml

• Preamble... It’s what you get when you use XML

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 88

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: conf.xml.in 5227 2011-06-12 08:51:24Z jakob $ -->

Page 89: OpenDNSSEC training

conf.xml

• Configuration contains

• RepositoryList

• Common

• Enforcer

• Signer

• Auditor

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 89

<Configuration>

<RepositoryList>

....

<RepositoryList>

<Common>

....

</Common>

<Enforcer>

....

</Enforcer>

<Signer>

....

</Signer>

<Auditor>

....

</Auditor>

</Configuration>

Page 90: OpenDNSSEC training

conf.xml

• Defines where private keys live

• You need at least one but you can have more

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 90

<RepositoryList>

<Repository name=”SoftHSM”>

<Module>/usr/local/lib/libsofthsm.so</Module>

<TokenLabel>OpenDNSSEC</TokenLabel>

<PIN>1234</PIN>

<!-- <Capacity>1000</Capacity> -->

<!-- <RequireBackup/> -->

<SkipPublicKey/>

<Repository>

...

</RepositoryList>

name, also used in

kasp.xml

Page 91: OpenDNSSEC training

conf.xml

• This elements provides pointers to other configuration files and some settings shared by all components such as logging

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 91

<Common>

<Logging>

<Verbosity>3</Verbosity>

<Syslog><Facility>local0</Facility></Syslog>

</Logging>

<PolicyFile>/etc/opendnssec/kasp.xml</PolicyFile>

<ZoneListFile>/etc/opendnssec/zonelist.xml</ZoneListFile>

<!—

<ZoneFetchFile>/etc/opendnssec/zonefetch.xml</ZoneFetchFile>

-->

</Common>

Page 92: OpenDNSSEC training

conf.xml

• Can also use MySQL

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 92

<Enforcer>

<!—

<Privileges>

<User>opendnssec</User>

<Group>opendnssec</Group>

</Privileges>

-->

<Datastore><SQLite>/var/opendnssec/kasp.db</SQLite></Datastore>

<Interval>PT3600S</Interval></Enforcer>

<!-- <ManualKeyGeneration/> -->

<!-- <RolloverNotification>P14D</RolloverNotification> -->

<!-- <DelegationSignerSubmitCommand>/usr/local/sbin/eppclient

</DelegationSignerSubmitCommand> -->

</Enforcer>

Page 93: OpenDNSSEC training

conf.xml

• The Signer will need a place to put temporary files and may start multiple threads.

• After the Signer is done you may want to kick your name server for a reload

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 93

<Signer>

<!-- <Privileges><User>opendnssec</User><Group>opendnssec</Group>

</Privileges> -->

<WorkingDirectory>/var/opendnssec/tmp</WorkingDirectory>

<WorkerThreads>8</WorkerThreads>

<SignerThreads>8</SignerThreads>

<!-- <NotifyCommand>rndc reload %zone</NotifyCommand> -->

</Signer>

Page 94: OpenDNSSEC training

conf.xml

• The Auditor will also need a place to put temporary files

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 94

<Auditor>

<!—

<Privileges>

<User>opendnssec</User>

<Group>opendnssec</Group>

</Privileges>

-->

<WorkingDirectory>/var/opendnssec/tmp</WorkingDirectory>

</Auditor>

Page 95: OpenDNSSEC training

kasp.xml

• Key and Signature Policy is documented in here

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 95

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: kasp.xml.in 5227 2011-06-12 08:51:24Z jakob $ -->

Page 96: OpenDNSSEC training

kasp.xml

• KASP contain one or more policies

• Policy contains • Description

• Signatures

• Denial

• Keys

• Zone

• Parent

• Audit

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 96

<KASP>

<Policy>

<Description>

....

</Description>

<Signatures>

...

</Signatures>

<Denial>

...

</Denial>

<Keys>

...

</Keys>

<Zone>

...

</Zone>

<Parent>

...

</Parent>

<!-- <Audit/> -->

</Policy>

<Policy>

....

</Policy>

</KASP>

Page 97: OpenDNSSEC training

kasp.xml

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 97

<Signatures>

<Resign>PT2H</Resign>

<Refresh>P3D</Refresh>

<Validity>

<Default>P7D</Default>

<Denial>P7D</Denial>

</Validity>

<Jitter>PT12H</Jitter>

<InceptionOffset>PT3600S</InceptionOffset>

</Signatures>

Page 98: OpenDNSSEC training

kasp.xml

• Denials defines parameters for Denial of Existence

• Use <NSEC/> for NSEC

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 98

<Denial>

<NSEC3>

<!-- <OptOut/> -->

<Resalt>P100D</Resalt>

<Hash>

<Algorithm>1</Algorithm>

<Iterations>5</Iterations>

<Salt length="8"/>

</Hash>

</NSEC3>

</Denial>

Page 99: OpenDNSSEC training

kasp.xml

• The KEYS element defines the lifetimes of keys

• The TTL ends up in the DNSKEY RRset

• Retire and Publish Safety are safety margins for during key rollover

• Purge is when to remove keys

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 99

<KEYS>

<TTL>PT3600S</TTL>

<RetireSafety>PT3600S</RetireSafety>

<PublishSafety>PT3600S</PublishSafety>

<!-- <ShareKeys/> -->

<Purge>P14D</Purge>

......

Page 100: OpenDNSSEC training

kasp.xml

• KSK sets KSK parameters for the current policy

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 100

<KEYS>

......

<KSK>

<Algorithm length="2048">7</Algorithm>

<Lifetime>P1Y</Lifetime>

<Repository>SoftHSM</Repository>

</KSK>

......

</KEYS>

Repository from conf.xml

Page 101: OpenDNSSEC training

kasp.xml

• ZSK sets ZSK parameters for the current policy

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 101

<KEYS>

......

<ZSK>

<Algorithm length="1024">7</Algorithm>

<Lifetime>P30D</Lifetime>

<Repository>SoftHSM</Repository>

<!-- <ManualRollover/> -->

</ZSK>

</KEYS>

Repository from conf.xml

Page 102: OpenDNSSEC training

kasp.xml

• The propagation delay is the time it takes for a zone to get to the complete set of name servers. Should be larger than the SOA refresh and not be larger than the SOA expiry parameter

• keep, unixtime, datecounter, counter

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 102

<Zone>

<PropagationDelay>PT43200S</PropagationDelay>

<SOA>

<TTL>PT3600S</TTL>

<Minimum>PT3600S</Minimum>

<Serial>unixtime</Serial>

</SOA>

</Zone>

Page 103: OpenDNSSEC training

kasp.xml

• Parent timing is important for maintaining the Chain of Trust.

• Look at the parental parameters and configure them in here

• Note that your parent may change its settings so now and then

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 103

<Parent>

<PropagationDelay>PT9999S</PropagationDelay>

<DS>

<TTL>PT3600S</TTL>

</DS>

<SOA>

<TTL>PT3600S</TTL>

<Minimum>PT3600S</Minimum>

</SOA>

</Parent>

Page 104: OpenDNSSEC training

kasp.xml

• If this element is present than all zones according to the current policy will be ‘audited’ after they are signed

• May take a long time

• May run out of memory

• Independent code path

• Not always that liberal in parsing ‘exotic’ RRs

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 104

<Audit>

<!-- <Partial /> -->

</Audit>

Page 105: OpenDNSSEC training

Configuration

• We configured conf.xml and kasp.xml

• Remember that you can have multiple policies

• One HSM slot serving 100 static zones with 1 private key

• A SoftHSM for zone signing and a HSM for key signing

• Zones with or without parents

• Zones with different parents (.se and .org)

• We have to tie the policies defined in kasp.xml to the zones we want to sign

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 105

Page 106: OpenDNSSEC training

zonelist.xml

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 106

<ZoneList>

<Zone name="example.com">

<Policy>default</Policy>

<SignerConfiguration>/var/opendnssec/signconf/example.com.xml

</SignerConfiguration>

<Adapters>

<Input>

<File>/var/opendnssec/unsigned/example.com</File>

</Input>

<Output>

<File>/var/opendnssec/signed/example.com</File>

</Output>

</Adapters>

</Zone>

...

</ZoneList>

Page 107: OpenDNSSEC training

zonefetch.xml

• The configuration to use if the zones will be fetched by using AXFR

• This is documented online.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 107

Page 108: OpenDNSSEC training

OpenDNSSEC training

Key states

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 108

Page 109: OpenDNSSEC training

Key states

• Extra precaution needs to be taken because of the DNS caches

• TTL and other timing attributes creates a delay before all information has propagated

• Use key states to get control of this process

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 109

Page 110: OpenDNSSEC training

Key states

• Publish

• Ready

• Active

• Retire

• Dead

• DSSub

• DSPublish

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 110

Page 111: OpenDNSSEC training

OpenDNSSEC training

Key rollovers

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 111

Page 112: OpenDNSSEC training

DNSSEC Key Timing Considerations

• A draft describing the process of rolling keys.

• http://tools.ietf.org/html/draft-ietf-dnsop-dnssec-key-timing-02

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 112

Page 113: OpenDNSSEC training

Rollover mechanisms

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 113

ZSK Method KSK Method Description

Pre-Publication N/A Publish DNSKEY before the RRSIG

Double-Signature Double-Signature Publish DNSKEY and RRSIG at the same time. For a KSK, this happens before the DS is published

Double-RRSIG N/A Publish RRSIG before the DNSKEY

N/A Double-DS Publish DS before DNSKEY

N/A Double-RRset Publish DNSKEY and DS in parallel.

Page 114: OpenDNSSEC training

Pre-Publication ZSK rollover

• First key: Ipub = Dprp + min(TTLsoa, SOAmin)

• Future keys: Ipub = Dprp + TTLkey

• TpubS <= Tact + Lzsk - Ipub

• Iret = Dsgn + Dprp + TTLsig

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 114

Page 115: OpenDNSSEC training

Double-Signature KSK rollover

• Ipub = Dprp + TTLkey

• TpubS <= Tact + Lksk - Dreg - Ipub

• Iret = DprpP + TTLds

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 115

Page 116: OpenDNSSEC training

Default KASP

• The default KASP will work in many cases

• But verify that the values works in your environment

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 116

Page 117: OpenDNSSEC training

OpenDNSSEC training

Testing

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 117

Page 118: OpenDNSSEC training

Testing

• Always verify that the zone works before publishing your first DS.

• There are various tools that can help.

• Can also trouble shoot any problems you might have.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 118

Page 119: OpenDNSSEC training

DNSCheck

• DNSCheck is a program that was designed to help people check, measure and hopefully also understand the workings of the Domain Name System, DNS.

• Open source software

• Available online and as a CLI

• Demo: http://dnscheck.iis.se/?setLanguage=en

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 119

Page 120: OpenDNSSEC training

DNSViz

• DNSViz is a tool for visualizing the status of a DNS zone.

• Demo: http://dnsviz.net/

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 120

Page 121: OpenDNSSEC training

OARC's DNS Reply Size Test Server

• DNSSEC required resolvers and the network to handle large packets

• This tool can show you what limitations there are

• Demo: dig +short rs.dns-oarc.net TXT

• https://www.dns-oarc.net/oarc/services/replysizetest

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 121

Page 122: OpenDNSSEC training

OARC’s source port test

• Some resolvers do not randomize the source port of the DNS query

• Demo: dig +short porttest.dns-oarc.net TXT

• https://www.dns-oarc.net/oarc/services/porttest

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 122

Page 123: OpenDNSSEC training

DNSSEC-debugger

• An online tool to verify the trust chain

• Demo: http://dnssec-debugger.verisignlabs.com/

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 123

Page 124: OpenDNSSEC training

OpenDNSSEC training

Integration

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 124

Page 125: OpenDNSSEC training

Integration into an existing system

• Adding/removing zones

• Zone distribution

• Send the public keys to the parent zone

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 125

Page 126: OpenDNSSEC training

Adding/removing zones

• Edit the zone list

• Update the information in zonelist.xml

• Trigger OpenDNSSEC to re-read the zonelist (ods-ksmutil update zonelist)

• Or only use CLI

• ods-ksmutil zone add --zone <name of zone>

• ods-ksmutil zone delete --zone <name of zone>

• If the extra arguments are not used, then the system defaults will be used

• Will edit the zonelist.xml for you

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 126

Page 127: OpenDNSSEC training

Zone distribution

• OpenDNSSEC currently only support AXFR in, file in, and file out

• Remember to trigger OpenDNSSEC to re-read the zone file if you use file in

• Future versions will have better support

• You can use your favorite nameserver to serve the signed zone file

• Use <NotifyCommand>rndc reload %zone</NotifyCommand> in conf.xml

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 127

Page 128: OpenDNSSEC training

Sending keys to the parent zone

• Manually

• Extract the keys from OpenDNSSEC or the signed zone

• Automatic

• Use <DelegationSignerSubmitCommand> in conf.xml

• OpenDNSSEC sends the current set of DNSKEY RR which should have a corresponding DS RR in the parent zone

• A command which can receive DNSKEY RRset on STDIN

• The command has to do its own conversion to DS RR

• Write your own plugin or use the ones provided by OpenDNSSEC

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 128

Page 129: OpenDNSSEC training

Plugins

• EPP client

• simple-dnskey-mailer

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 129

Page 130: OpenDNSSEC training

OpenDNSSEC training

Monitoring

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 130

Page 131: OpenDNSSEC training

Why?

• We must have a zone with valid signatures and no missing data.

• Can be caused by various issues:

• Configuration errors

• Name servers not receiving updates

• Unsynchronized clocks

• Software bugs

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 131

Page 132: OpenDNSSEC training

What to monitor

• Signatures that are about to expire or is invalid

• Missing zone data

• Availability

• SOA Serial

• Policy compliance

• Etc.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 132

Page 133: OpenDNSSEC training

Keep an eye on your system

• Active

• Is part of your distribution chain

• Can stop the distribution

• Passive

• External monitoring

• Can view the system from different points

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 133

Page 134: OpenDNSSEC training

Active monitoring

• The Auditor

• Internal scripts which check the zone before pushing the zone to the public name servers

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 134

Page 135: OpenDNSSEC training

Passive monitoring

• Monitor the system health

• CPU load

• Memory

• Etc.

• Regularly perform queries against the public name server

• There are e.g. DNSSEC monitoring available for Nagios

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 135

Page 136: OpenDNSSEC training

OpenDNSSEC training

Disaster Recovery Plan

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 136

Page 137: OpenDNSSEC training

Disaster Recovery Plan

• DNSSEC requires more from your DNS operations.

• The time in DNSSEC is absolute and not relative.

• If something happens, you need to be able to act.

• You need to have a plan for different scenarios.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 137

Page 138: OpenDNSSEC training

Backup

• Remember to create a backup of your environment.

• KASP database

• Keys

• The KASP database can be partially recreated, but requires a lot of work. Better to have a backup.

• Consult your HSM documentation on how to backup your keys.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 138

Page 139: OpenDNSSEC training

Documentation

• Always have documentation on your environment.

• System

• Routines

• Commands

• Easier for you to remember.

• Easier for others to work with the system.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 139

Page 140: OpenDNSSEC training

Shared responsibility

• Share your knowledge with others in your organization.

• More should know how DNSSEC works.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 140

Page 141: OpenDNSSEC training

Have a sane KASP

• It is good to have short lifetime on signatures from a security perspective.

• But can you fix the problem before the signatures expires?

• It is a trade-off between availability and integrity.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 141

Page 142: OpenDNSSEC training

Going unsigned

• In the worst case scenario you might need to go unsigned.

• Lost your keys, etc.

• Remove the DS from the parent zone.

• Must be done before the signatures expires.

• Remember to take TTL and propagation delay into account.

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 142

Page 143: OpenDNSSEC training

OpenDNSSEC training

Operational Practices

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 143

Page 144: OpenDNSSEC training

Algorithm

• Current recommendation is to use RSA/SHA-256

• SHA1 is becoming weaker

• SHA256 used by the root

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 144

Page 145: OpenDNSSEC training

Rolling KSK

• Different thoughts

• Every 12 month

• Roll when you “need” to

• Root will roll every 5th year

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 145

Page 146: OpenDNSSEC training

Rolling ZSK

• Current recommendation is every month

• Root is rolling every 3rd month

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 146

Page 147: OpenDNSSEC training

Single Type Signing Key

• One key acting as both KSK and ZSK

• Can be used when:

• The exposure to risk is low (e.g. when keys are stored on HSMs).

• One can be certain that a key is not used as a trust-anchor.

• Maintenance of the various keys cannot be performed through tools.

• The interaction through the registrar-registry provisioning chain, in particular the timely appearance of a new DS record in the 2011 parent zone in emergency situations, is predictable.

• Not yet supported by OpenDNSSEC

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 147

Page 148: OpenDNSSEC training

NSEC or NSEC3

• NSEC

• When zone content is not highly structured or trivially guessable

• Ease the work required by signers and validating resolvers

• NSEC3

• Prevention of zone enumeration

• Opt-out when the number of secure delegations is low

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 148

Page 149: OpenDNSSEC training

SOA Expire

• Always have valid signatures in your zone

• The zone should expire before the signatures

• SOA Expire < Signature Refresh Period

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 149

Page 151: OpenDNSSEC training

OpenDNSSEC training

Closing

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 151

Page 152: OpenDNSSEC training

Discussion

• Are you missing any functionality in the software?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 152

Page 153: OpenDNSSEC training

Discussion

• Did we meet your expectations?

• If not, what more would you like to know?

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 153

Page 154: OpenDNSSEC training

Thank you

• The material is available online

• www.opendnssec.org

2 March 2012 Creative Commons Attribution-ShareAlike 3.0 Unported License 154