DNSSEC ( Eng. Domain Name System Security Extensions ) är en uppsättning IETF -tillägg till DNS- protokollet som låter dig minimera attacker associerade med IP-adressförfalskning när du löser domännamn . Det syftar till att ge DNS-klienter (engelsk term resolver) autentiska svar på DNS-frågor (eller autentisk information om att data saknas) och säkerställa deras integritet. Den använder kryptografi med publik nyckel. Tillgängligheten av data och förfrågningars konfidentialitet är inte säkerställd. Att säkerställa DNS-säkerhet är avgörande för den övergripande Internetsäkerheten.
Ursprungligen utvecklades inte Domain Name System (DNS) för säkerhetsändamål, utan för att skapa skalbara distribuerade system. Med tiden blir DNS-systemet mer och mer sårbart. Angripare omdirigerar enkelt användarförfrågningar med symboliskt namn till dummyservrar och får på så sätt tillgång till lösenord, kreditkortsnummer och annan konfidentiell information. Användarna själva kan inte göra något åt detta, eftersom de i de flesta fall inte ens misstänker att begäran omdirigerades - posten i webbläsarraden och själva webbplatsen är exakt samma som användaren förväntar sig att se dem. DNSSEC är ett försök till säkerhet samtidigt som det är bakåtkompatibelt.
DNSSEC designades för att skydda klienter från falska DNS-data, till exempel de som genereras av DNS-cacheförgiftning . Alla svar från DNSSEC är digitalt signerade. Vid verifiering av en digital signatur verifierar DNS-klienten informationens riktighet och integritet.
DNSSEC krypterar eller ändrar inte datahantering och är kompatibel med tidigare versioner av det nuvarande DNS-systemet och applikationerna. DNSSEC kan också certifiera information som allmänt kryptografiska certifikat som lagras i DNS CERT-posten . RFC 4398 beskriver hur man distribuerar dessa certifikat, inklusive via e-post, vilket gör att DNSSEC kan användas som ett globalt distribuerat lager av signeringsnyckelcertifikat.
DNSSEC tillhandahåller inte datasekretess; i synnerhet är alla DNSSEC-svar autentiserade men inte krypterade. DNSSEC skyddar inte direkt mot DoS- attacker, även om det gör det indirekt på något sätt. Andra standarder (icke-DNSSEC) används för att tillhandahålla en stor mängd data som skickas mellan DNS-servrar.
DNSSEC-specifikationen ( DNSSEC-bis ) beskriver det aktuella DNSSEC-protokollet. Se RFC 4033 , RFC 4034 och RFC 4035 .
Inledningsvis hade domännamnssystemet inga mekanismer för att skydda mot utbyte av information i serversvaret, eftersom säkerhetshoten från det moderna Internet inte var relevanta vid tiden för dess utveckling (i början av 1980-talet). Samtidigt bedömde kunderna riktigheten av den information som mottogs enbart av tvåbyte-förfrågningsidentifieraren. Således behövde angriparen iterera över 65536 värden för att "förgifta cachen". Detta innebar att data i DNS-systemet är korrupta (avsiktligt eller på grund av ett misstag), och DNS-servern cachar dem för att optimera prestandan (cachen blir "förgiftad") och börjar leverera denna icke-autentiska data till sina klienter. Redan 1990 identifierade Steve Bellovin allvarliga säkerhetsbrister . Forskning inom detta område har påbörjats och har varit i full gång sedan rapportens publicering 1995 [1] .
Den första upplagan av DNSSEC RFC 2065 publicerades av IETF 1997. Försök att implementera denna specifikation ledde till den nya specifikationen RFC 2535 1999. Det var planerat att implementera DNSSEC baserat på IETF RFC 2535 .
Tyvärr hade IETF RFC 2535-specifikationen allvarliga problem med att skala till hela Internet. År 2001 stod det klart att denna specifikation var olämplig för stora nätverk. Under normal drift blev DNS-servrar ofta osynkroniserade med sina föräldrar (övre domäner i hierarkin). Detta var vanligtvis inte ett problem, men med DNSSEC aktiverat kan avsynkroniserad data få en oavsiktlig DoS-effekt. Säker DNS är mycket mer beräkningsintensiv, och med större lätthet än "klassisk" DNS kan den ta upp alla datorresurser.
Den första versionen av DNSSEC krävde en kommunikation med sex meddelanden och en stor mängd data för att implementera ändringar i barnet (alla DNS-zoner för barnet måste överföras helt till föräldern, föräldern gör ändringarna och skickar tillbaka dem till barnet ). Dessutom kan ändringar av den offentliga nyckeln få en katastrofal effekt. Till exempel, om ".com"-zonen ändrade sin nyckel, skulle 22 miljoner poster behöva skickas (eftersom alla poster i alla efterföljare måste uppdateras). Således kunde DNSSEC i form av RFC 2535 inte skalas till storleken på Internet.
Dessa komplexiteter ledde i sin tur till uppkomsten av nya specifikationer ( RFC 4033 , RFC 4034 , RFC 4035 ) med grundläggande ändringar av DNSSEC (DNSSEC-bis), vars nya version eliminerade huvudproblemet med den tidigare implementeringen och även om i den nya specifikationen måste kunderna göra ytterligare åtgärder för att kontrollera nycklar, det visade sig vara ganska lämpligt för praktisk användning.
2005 dök den aktuella upplagan av DNSSEC upp, som alla arbetar med. En milstolpe hände 2008, när Dan Kaminsky visade världen att du kan förgifta cachen på 10 sekunder. DNS-programvaruleverantörer har svarat genom att slumpmässigt välja den utgående porten för frågan utöver fråge-ID. Längs vägen började tvister om implementeringen av DNSSEC.
DNSSEC-ändringen, kallad DNSSEC-bis (namnet gavs för att skilja DNSSEC-bis från den ursprungliga DNSSEC-metoden i RFC 2535 ) använder DS-principen ( delegation signer ) för att tillhandahålla ett extra lager av indirekt delegering vid överföring av zoner från förälder till barn . I det nya tillvägagångssättet, när man ändrar den publika nyckeln, skickas endast ett eller två meddelanden till administratören av överordnad domän istället för sex: arvtagaren skickar en sammanfattning (fingeravtryck, hash) av den nya publika nyckeln till föräldern. Föräldern lagrar helt enkelt den publika nyckelidentifieraren för vart och ett av barnen. Det innebär att en mycket liten mängd data kommer att skickas till föräldern istället för att en enorm mängd data utbyts mellan barnet och föräldern.
Signering och validering av DNS-data skapar ytterligare overhead, vilket negativt påverkar nätverks- och serverprestanda. Till exempel, i genomsnitt är DNSSEC-zonen (en uppsättning domännamn på en viss nivå som ingår i en specifik domän) 7-10 gånger större än själva DNS-systemet. Att generera och verifiera signaturer kräver betydande CPU-tid. Signaturer och nycklar tar upp en storleksordning mer utrymme på disken och i RAM-minnet än själva data.
Funktionsprincipen för DNSSEC bygger på användningen av digitala signaturer . Administratören har ett register över att matcha domännamnet och IP-adressen. DNSSEC sätter var och en av dem i strikt överensstämmelse med en speciell, strikt definierad sekvens av tecken, som är en digital signatur. Huvuddragen hos en digital signatur är att det finns öppna, allmänt tillgängliga metoder för att verifiera äktheten av en signatur, men att generera en signatur för godtyckliga data kräver att den hemliga signeringsnyckeln är tillgänglig. Därför kan varje deltagare i systemet verifiera signaturen, men i praktiken kan bara den som har den hemliga nyckeln signera ny eller ändrad data.
I teorin är det ingenting som förbjuder en hackare att beräkna den hemliga nyckeln och plocka upp en signatur, men i praktiken, för en tillräckligt komplex och lång nyckel, kan en sådan operation inte utföras inom rimlig tid med de befintliga beräkningsverktygen och matematiska algoritmerna.
Med en hemlig nyckel är det inte svårt att beräkna en digital signatur. Sådant är arbetet med asymmetriska krypteringssystem med offentlig nyckel som ligger till grund för digitala signaturalgoritmer.
Låt oss säga att en användare kommer åt webbplatsen wikipedia.org. Följande händer:
Om något inte kan valideras kommer resolvern att returnera ett servfail-fel.
Den sålunda bildade förtroendekedjan reduceras till rotdomänen och rotzonsnyckeln.
DS -posten (Delegation of Signing ) innehåller en hash av arvtagarens domännamn och dess KSK. DNSKEY -posten innehåller den offentliga delen av nyckeln och dess identifierare (ID, typ och hashfunktion används).
KSK (Key Signing Key) betyder nyckelsigneringsnyckel (långtidsnyckel), och ZSK (Zone Signing Key) betyder zonsigneringsnyckel (långtidsnyckel). Med hjälp av KSK verifieras ZSK, som används för att signera rotzonen. Rotzonen ZSK skapas av PTI ( IANA funktionella divisionen av ICANN ), som är tekniskt ansvarig för att sprida DNS-rotzonen. Enligt ICANN:s procedur uppdateras rotzonen ZSK fyra gånger om året.
För att fullständigt validera all data som överförs med DNSSEC, krävs en kedja av förtroende från rotzonen (.) av DNS. Implementeringen av en korrekt signerad rotzon på alla rot-DNS-servrar kan orsaka kollaps av det moderna internet, så IETF arbetade med ICANN för att utveckla en steg-för-steg-procedur för att implementera en signerad rotzon och en nyckeldistributionsmekanism . Proceduren drog ut på tiden i mer än 8 månader och inkluderade en steg-för-steg-introduktion till DNS-servrarna först i rotzonen, signerad med en ogiltig elektronisk signaturnyckel . Detta steg var nödvändigt för att tillhandahålla testning av servrar under belastning, för att upprätthålla bakåtkompatibilitet med äldre programvara och för att lämna möjligheten att återgå till en tidigare konfiguration.
I juni 2010 fungerade alla rotservrar korrekt med en zon signerad med en ogiltig nyckel. I juli höll ICANN en internationell konferens tillägnad proceduren för att generera elektroniska signaturnycklar, som sedan signerades av rotzonen.
Den 15 juli 2010 ägde undertecknandet av rotzonen rum och implementeringen av den undertecknade zonen på servrarna började. Den 28 juli tillkännagav ICANN [2] att denna process slutförts. Rotzonen signerades digitalt och spreds i DNS-systemet.
Den 31 mars 2011 undertecknades den största zonen på Internet (90 miljoner domäner) - .com [3] .
ICANN har valt en modell där signeringen av zonen sköts under kontroll av representanter för internetgemenskapen (Trusted community representative, TCR). Representanter valdes ut bland dem som inte var associerade med DNS-rotzonshantering. De folkvalda representanterna fungerade som Crypto Officers (CO) och Recovery key shareholders (RKSH). CO:erna fick fysiska nycklar för att möjliggöra genereringen av ZSK EDS-nyckeln, och RKSH:erna har smartkort som innehåller delar av nyckeln (KSK) som används inuti den kryptografiska utrustningen. Vissa medier har dragit slutsatsen att förfaranden som kräver närvaro av CO eller RKSH kommer att utföras i händelse av nätverksnödsituationer [4] . I enlighet med ICANN:s rutiner kommer dock COs att vara involverade varje gång en zonsigneringsnyckel (ZSK) genereras, upp till 4 gånger per år, och RKSH förmodligen aldrig, eller i händelse av förlust av CO-nycklar eller en komprometterad rotzon [5] .
Från och med oktober 2013 finns det 81 ccTLD:er och 13 generiska DNSSEC-signerade domäner (utan IDN:er) i rotzonen , vilket ger en kedja av förtroende för andranivådomäner. 2011, med hjälp av DNSSEC (NSEC3 opt-out), undertecknades .su- zonen relaterad till Ryssland, och i slutet av oktober 2012 började publiceringen av användarskapade DS-poster i den. [6] I slutet av 2012 signerades den ryska domänen .ru och dess DS-poster publicerades i rotzonen [7] .
Den 11 oktober 2018 inträffade den första rotzonens KSK-rotation sedan rotzonssigneringen 2010. Nyckelrotationen, som ursprungligen var planerad till oktober 2017, försenades av ICANN när det stod klart att ett betydande antal (cirka 2 %) av upplösare var använder samma nyckel för validering av DNSSEC-signaturkedjan. Under året har några tekniska lösningar implementerats i Bind, PowerDNS, Knot och andra DNS-serverpaket, en storskalig kampanj genomfördes för att informera allmänheten om nyckelrotation, och som ett resultat, i september 2018, ICANN Styrelsen beslutade att genomföra nyckelrotation. Det fanns inga betydande problem med nyckelrotation.
Implementeringen av DNSSEC har försenats kraftigt av anledningar som:
De flesta av dessa problem löses av den tekniska Internetgemenskapen.
De två vanligaste DNS-serverimplementeringarna, BIND och NSD , stöder DNSSEC (10 av 13 rotservrar använder BIND, de återstående 3 använder NSD). Det finns också stöd för PowerDNS , Unbound och några andra DNS-servrar.
På grund av det faktum att det fanns väldigt få servrar på vilka DNSSEC-tillägget distribuerades, skapades också väldigt lite slutanvändarprogramvara med DNSSEC-stöd. Microsofts operativsystem har dock redan DNSSEC integrerat. I Windows Server 2008 - RFC 2535 , i Windows 7 och Windows Server 2008 R2 - den aktuella versionen av DNSSEC-bis.
Windows XP och Windows Server 2003 stöder RFC 2535 , men de kan bara identifiera paket från servrar med DNSSEC, det är där deras kapacitet slutar.
Speciellt nämns DNSSEC-Tools- projektet , som är en uppsättning applikationer, tillägg och plugin-program som låter dig lägga till DNSSEC-stöd till webbläsaren Firefox , Thunderbird e- postklient , proftpd , ncftp FTP - servrar och några andra applikationer [8] .
Användningen av DNSSEC kräver programvara på både server- och klientsidan.
TCP / IP-protokoll efter lager av OSI-modellen | Grundläggande|
---|---|
Fysisk | |
kanaliserad | |
nätverk | |
Transport | |
session | |
Representation | |
Applicerad | |
Annat ansökt | |
Lista över TCP- och UDP-portar |
_ | Internetsäkerhetsmekanismer|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kryptering och trafikfiltrering _ |
| ||||||||||||||
Autentisering | |||||||||||||||
Datorskydd |
| ||||||||||||||
IP-telefonisäkerhet |
| ||||||||||||||
Anonymisering av trafiken | |||||||||||||||
Trådlös säkerhet |