OpenDNSSEC Rickard Bondesson,.SE Rickard.bondesson@iis.se 2009-06-15 1
Av vem? 2009-06-15 2
Detta är OpenDNSSEC 2009-06-15 3
Beskrivning OpenDNSSEC är en komplett DNSSEC zonsignerare som automatiserar hanteringen av DNSSEC-nycklar och signeringen av zonerer. Öppen mjukvara under BSD-licens. Enkel integrering med befintlig infrastruktur. 2009-06-15 4
Komponenter OpenDNSSEC har tre huvudkomponenter: 1. KASP - Key and Signing Policy, en policy som beskriver hur zonen ska signeras. KASP:en utförs av KASP Enforcer och skickas som en konfiguration till Signer. Skapa de nycklar som behövs i säkerhetsmodulen. Ta bort nycklar som inte behövs längre. Hantera alla tidsmarginaler vid publicering. 2009-06-15 5
Komponenter 2. Signer - sköter den automatiska signeringen av zonerna Omsignering då signaturer går ut.. Omsignering då nycklarna byts ut. Underhåll NSEC/NSEC3 kedjan. Uppdatera serienumret på zonen ändringar sker. 2009-06-15 6
Komponenter 3. HSM - en kryptografisk enhet som antingen är riktig hårdvara eller mjukvaran SoftHSM som levereras tillsammans med OpenDNSSEC. Flera säkerhetsmoduler kan finnas I systemet. Använder PKCS#11, gör det lättare är välja produkt efter kostnad, prestanda, och säkerhetsnivå. 2009-06-15 7
Övriga komponenter Det finns dock fler komponenter: 4. KASP Auditor - övervakar signeringsprocessen och att resultatet stämmer överens med den uppsatta policyn. Olika nivåer av granskning. Om zonen inte uppfyller den ställda policyn kan distributionen stoppas. De olika typerna av granskning finns specificerade på vår wiki. Håller på att implementeras i Ruby av personer utanför projektgruppen. 2009-06-15 8
Övriga komponenter 5. I/O adaptrar - för in- och utmatning av zondata. Zonöverföringar (AXFR, IXFR) Fil in/ut File repository (SVN) Säker filöverföring (SCP) Databas 2009-06-15 9
Övriga komponenter 6. libhsm skapar ett lager runt all PKCS#11-hantering. Förenklar krypto-, sessions, och objekthanteringen för de övriga komponenterna. 2009-06-15 10
HSM Vad är en HSM? - Lägrar nycklar (huvudnycklar) i hårdvara - Genomför kryptografiskaoperationer med dessa nycklar Varför ska man använda en? - Säkerhet (FIPS) - Privata nycklar tillåts inte lämnas ut utanför HSM:en - Man vet var nycklar finns - Hastighet - 1 14,000 signaturer per sekund Är de dyra? - $50 - $50,000 2009-06-15 11
SoftHSM SoftHSM är en mjukvaruimplementation av en HSM tillgänglig genom PKCS#11-gränssnittet. Man kan använda den för att utforska PKCS#11 utan att införskaffa en riktig HSM. SoftHSM utvecklas som en del av OpenDNSSEC projektet. Använder Botan som kryptobibliotek samt SQLite för att lagra nyckelinformation. SoftHSM har utvecklats för att OpenDNSSEC ska kunna användas i en ren mjukvarumiljö. 2009-06-15 12
Hantering av nycklar Kommer från: draft-morris-dnsop-dnssec-key-timing-00.txt 2009-06-15 13
Nyckelmetadata i KASP Information om nycklarna lagras i Metastore, så som datum då nyckeln skapades, då senast säkerhetskopierades, återkallades, och så vidare. En nyckel får också en globalt unik identifierare för att kunna hittas bland de olika HSM:erna. Detta för att sökvägen till en HSM inte är konstant över tiden. 2009-06-15 14
KASP kommandon Administratören ska bara behöva lägga till policyn och ha en möjlighet att rulla nycklar på kommando. Men ett riktigt CLI eller GUI interface har inte utvecklats ännu. Det finns ett CLI i testsyften. 2009-06-15 15
Arkitektur 2009-06-15 16
Konfigurering Först behöver man en HSM. För att använda SoftHSM gör man följande: Skapa en token genom att lägga till en rad i softhsm.conf: 0:/home/user/my.db Initiera denna token genom kommandot: softhsm --init-token --slot 0 --label "Min token" 2009-06-15 17
conf.xml <?xml version="1.0" encoding="utf-8"?> <Configuration> <RepositoryList> <Repository> <Name>softHSM</Name> <Module>/usr/local/lib/libsofthsm.so</Module> <PIN>1234</PIN> </Repository> </RepositoryList> <Enforcer> <Interval>PT3600S</Interval> <KeygenInterval>PT3M</KeygenInterval> <BackupDelay>P3D</BackupDelay> </Enforcer> <Signer> <ZoneListFile>/var/dnssec/zonelist.xml</ZoneListFile> <WorkingDirectory>/var/dnssec/tmp</WorkingDirectory> <!-- toolsdir will be removed, but is used for testing atm --> <ToolsDirectory>/usr/local/bin</ToolsDirectory> </Signer> </Configuration> 2009-06-15 18
kasp.xml <?xml version="1.0" encoding="utf-8"?> <KASP> <Policy name="default"> <Description>A default policy that will amaze you and your friends</description> <Signatures> <Resign>PT2H</Resign> <Refresh>P3D</Refresh> <Validity> <Default>P7D</Default> <Denial>P14D</Denial> </Validity>... <KSK> <Algorithm length="2048">5</algorithm> <Lifetime>P1Y</Lifetime> <Repository>softHSM</Repository> <Emergency>2</Emergency> <RFC5011/> </KSK>... <ZSK> <Algorithm length="1024">5</algorithm> <Lifetime>P14D</Lifetime> <Repository>softHSM</Repository> 2009-06-15 19
zonelist.xml <?xml version="1.0" encoding="utf-8"?> <ZoneList> <Zone name="opendnssec.se"> <Policy>default</Policy> <SignerConfiguration>/var/opendnssec/config/opendnssec.se.xml </SignerConfiguration> <Adapters> <Input> <File>/var/dnssec/unsigned/opendnssec.se</File> </Input> <Output> <File>/var/dnssec/signed/opendnssec.se</File> </Output> </Adapters> </Zone> </ZoneList> 2009-06-15 20
opendnssec.se.xml... <Keys> <TTL>PT3600S</TTL> <Key> <Flags>257</Flags> <Algorithm>5</Algorithm> <Locator>DFE7265B783F418685380AA784C2F31D</Locator> <KSK/> <Publish/> </Key> <Key> <Flags>256</Flags> <Algorithm>5</Algorithm> <Locator>8D76C0C49FEB4A97B8E920C7552401CE</Locator> <ZSK/> <Publish/> </Key> </Keys>... <SOA> <TTL>PT3600S</TTL> <Minimum>PT3600S</Minimum> <Serial>unixtime</Serial> </SOA> 2009-06-15 21
Kvar att göra: Systemintegrering Installationsguide Användarguide Paketera OpenDNSSEC Systemtester Hastighetstester Drifttester Användartester 2009-06-15 22
När? Version 1.0 släpps vid IETF i Stockholm. 2009-06-15 23
http://www.opendnssec.se/ 2009-06-15 24
Tack Frågor? 2009-06-15 25