Vi vÀlkomnar tjÀnsten frÄn Cloudflare pÄ adresserna 1.1.1.1 och 1.0.0.1, eller "public DNS-hyllan har fÄtt tillskott!"

Vi vÀlkomnar tjÀnsten frÄn Cloudflare pÄ adresserna 1.1.1.1 och 1.0.0.1, eller "public DNS-hyllan har fÄtt tillskott!"

 

Cloudflare har presenterat offentliga DNS pÄ adresser:

 

  • 1.1.1.1
  • 1.0.0.1
  • 2606:4700:4700::1111
  • 2606:4700:4700::1001

 

Det pÄstÄs att en "Privacy first"-policy anvÀnds, sÄ anvÀndare kan kÀnna sig trygga med innehÄllet i sina förfrÄgningar.

 

TjĂ€nsten Ă€r intressant eftersom den, förutom vanliga DNS, ocksĂ„ erbjuder möjligheten att anvĂ€nda teknologier som DNS-over-TLS och DNS-over-HTTPS, vilket kraftigt hindrar leverantörer frĂ„n att avlyssna dina förfrĂ„gningar lĂ€ngs vĂ€gen — samt samla statistik, följa upp, hantera reklam. Cloudflare hĂ€vdar att datumet för tillkĂ€nnagivandet (1 april 2018, eller 04/01 i amerikansk notation) valdes av en anledning: vilken annan dag pĂ„ Ă„ret skulle man presentera "fyra ettor"?

Eftersom publiken pÄ Habr Àr tekniskt kunnig, kommer jag att placera den traditionella sektionen "varför behöver man DNS?" i slutet av inlÀgget, och hÀr redogöra för mer praktiskt anvÀndbara saker:

 

Hur anvÀnder man den nya tjÀnsten?

 

Det enklaste Ă€r att i din DNS-klient (eller som upstream i instĂ€llningarna för din lokala DNS-server) ange de nĂ€mnda adresserna för DNS-servrar. Är det meningsfullt att byta ut de vanliga vĂ€rdena för googles DNS (8.8.8.8 osv.), eller de nĂ„got mindre vanliga Yandex offentliga DNS-servrar (77.88.8.8 och liknande) mot servrar frĂ„n Cloudflare — det fĂ„r ni avgöra, men för nybörjare talar diagrammet för svarshastigheter, enligt vilket Cloudflare arbetar snabbare Ă€n alla konkurrenter (jag pĂ„pekar: mĂ€tningarna har genomförts av en tredje part, och hastigheten till en specifik klient kan naturligtvis variera).

 

Vi vÀlkomnar tjÀnsten frÄn Cloudflare pÄ adresserna 1.1.1.1 och 1.0.0.1, eller "public DNS-hyllan har fÄtt tillskott!"

 

Mycket mer intressant Àr arbetet med de nya lÀgen, dÀr en förfrÄgan skickas ivÀg via server en krypterad anslutning (egentligen returneras svaret via samma metod), nÀmnda DNS-over-TLS och DNS-over-HTTPS. TyvÀrr stöds de inte "ur lÄdan" (författarna tror att detta Àr "tills vidare"), men det Àr inte svÄrt att ordna deras funktionalitet i din programvara (eller till och med pÄ din egen hÄrdvara):

 

DNS över HTTPs (DoH)

 

Som namnet antyder sker kommunikationen över HTTPS-kanalen, vilket innebÀr

 

  1. att det finns en landningspunkt (endpoint) — den finns pĂ„ adressen https://cloudflare-dns.com/dns-query, och
  2. en klient som kan skicka förfrÄgningar och ta emot svar.

 

FörfrÄgningar kan antingen vara i DNS Wireformat, definierat i RFC1035 (skicka via HTTP-metoder POST och GET), eller i JSON-format (anvÀnder HTTP-metoden GET). För mig personligen verkade idén att göra DNS-förfrÄgningar genom HTTP-förfrÄgningar ovÀntad, men det finns en rationell kÀrna i den: en sÄdan förfrÄgan kan passera mÄnga trafikfiltreringssystem, att parsa svar Àr ganska enkelt, och att skapa förfrÄgningar Àr Ànnu enklare. För sÀkerheten ansvarar de vÀlkÀnda biblioteken och protokollen.

 

Exempel pÄ förfrÄgningar direkt frÄn dokumentationen:

 

GET-förfrÄgan i DNS Wireformat

 

$ curl -v "https://cloudflare-dns.com/dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB" | hexdump
* AnvÀnder HTTP2, servern stödjer multi-use
* AnslutningstillstÄndet har Àndrats (HTTP/2 bekrÀftat)
* Kopierar HTTP/2-data i strömbufferten till anslutningsbufferten efter uppgradering: len=0
* AnvÀnder Stream ID: 1 (lÀtt handtag 0x7f968700a400)
GET /dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB HTTP/2
Host: cloudflare-dns.com
User-Agent: curl/7.54.0
Accept: */*

* AnslutningstillstÄndet har Àndrats (MAX_CONCURRENT_STREAMS uppdaterad)!
HTTP/2 200
date: Fri, 23 Mar 2018 05:14:02 GMT
content-type: application/dns-udpwireformat
content-length: 49
cache-control: max-age=0
set-cookie: __cfduid=dd1fb65f0185fadf50bbb6cd14ecbc5b01521782042; expires=Sat, 23-Mar-19 05:14:02 GMT; path=/; domain=.cloudflare.com; HttpOnly
server: cloudflare-nginx
cf-ray: 3ffe69838a418c4c-SFO-DOG

{ [49 bytes data]
100    49  100    49    0     0    493      0 --:--:-- --:--:-- --:--:--   494
* Anslutning #0 till host cloudflare-dns.com kvarstÄr intakt
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031

 

POST-förfrÄgan i DNS Wireformat

 

$ echo -n 'q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB' | base64 -D | curl -H 'Content-Type: application/dns-udpwireformat' --data-binary @- https://cloudflare-dns.com/dns-query -o - | hexdump

{ [49 bytes data]
100    49  100    49    0     0    493      0 --:--:-- --:--:-- --:--:--   494
* Anslutning #0 till host cloudflare-dns.com kvarstÄr intakt
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031

 

Samma, men med anvÀndning av JSON

 

$ curl 'https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=example.com&type=AAAA'

{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": true,
  "CD": false,
  "Question": [
    {
      "name": "example.com.",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "example.com.",
      "type": 1,
      "TTL": 1069,
      "data": "93.184.216.34"
    }
  ]
}

 

Det Àr uppenbart att sÀllsynta (om ens en enda) hemrouter kan fungera sÄ hÀr med DNS, men det betyder inte att stödet inte kan dyka upp imorgon - och intressant nog kan vi hÀr genomföra DNS-funktionalitet i vÄr applikation (som redan kommer att göra Mozilla, just pÄ servrarna Cloudflare).

 

DNS över TLS

 

Som standard skickas DNS-förfrÄgningar utan kryptering. DNS över TLS Àr ett sÀtt att skicka dem över en sÀker anslutning. Cloudflare stödjer DNS över TLS pÄ den standardport som anges, 853. RFC7858. En certifikat utfÀrdat för vÀrden cloudflare-dns.com anvÀnds, och TLS 1.2 och TLS 1.3 stöds.

 

SÄ hÀr gÄr anslutningen och arbetet med protokollet till:

 

  • Innan anslutningen till DNS sparar klienten en base64-kodad SHA256-hash av TLS-certifikatet för cloudflare-dns.com (kallad SPKI).
  • DNS-klienten upprĂ€ttar en TCP-anslutning med cloudflare-dns.com:853.
  • DNS-klienten initierar TLS handshake-proceduren.
  • Under TLS handshake-processen presenterar vĂ€rden cloudflare-dns.com sitt TLS-certifikat.
  • NĂ€r TLS-anslutningen har upprĂ€ttats kan DNS-klienten skicka DNS-förfrĂ„gningar över den sĂ€kra kanalen, vilket förhindrar avlyssning och förfalskning av förfrĂ„gningar och svar.
  • Alla DNS-förfrĂ„gningar som skickas via TLS-anslutningen mĂ„ste följa specifikationen för skicka DNS över TCP.

 

Exempel pÄ en förfrÄgan över DNS över TLS:

 

$ kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com  example.com
;; DEBUG: FrÄgar efter Àgare(example.com.), klass(1), typ(1), server(1.1.1.1), port(853), protokoll(TCP)
;; DEBUG: TLS, importerade 170 systemcertifikat
;; DEBUG: TLS, mottagen certifikat-hierarki:
;; DEBUG:  #1, C=US,ST=CA,L=San Francisco,O=Cloudflare, Inc.,CN=*.cloudflare-dns.com
;; DEBUG:      SHA-256 PIN: yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc=
;; DEBUG:  #2, C=US,O=DigiCert Inc,CN=DigiCert ECC Secure Server CA
;; DEBUG:      SHA-256 PIN: PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=
;; DEBUG: TLS, hoppar över certifikat-PIN-kontrollen
;; DEBUG: TLS, certifikatet Àr betrott.
;; TLS-session (TLS1.2)-(ECDHE-ECDSA-SECP256R1)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 58548
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP-storlek: 1536 B; ext-rcode: NOERROR
;; PADDING: 408 B

;; QUESTION SECTION:
;; example.com.             IN  A

;; ANSWER SECTION:
example.com.            2347    IN  A   93.184.216.34

;; Mottagen 468 B
;; Tid 2018-03-31 15:20:57 PDT
;; FrÄn 1.1.1.1@853(TCP) pÄ 12.6 ms

 

Detta alternativ verkar vara bĂ€ttre lĂ€mpat för lokala DNS-servrar som betjĂ€nar behoven hos ett lokalt nĂ€tverk eller en enskild anvĂ€ndare. Dock Ă€r stödet för standarden inte sĂ„ bra, men — lĂ„t oss hoppas!

 

TvÄ ord förklaringar, vad det handlar om

 

Förkortningen DNS stĂ„r för DomĂ€n Name Service (sĂ„ att sĂ€ga "DNS-tjĂ€nst" Ă€r nĂ„got överflödigt, eftersom förkortningen redan har ordet "tjĂ€nst"), och den anvĂ€nds för att lösa en enkel uppgift — att förstĂ„ vilken IP-adress som hör till ett specifikt vĂ€rdnamn. Varje gĂ„ng en person klickar pĂ„ en lĂ€nk eller skriver in en adress i webblĂ€sarens adressfĂ€lt (lĂ„t oss sĂ€ga nĂ„got som «https://habrahabr.ru/post/346430/Datorn försöker förstĂ„ till vilken server den ska skicka en begĂ€ran för att hĂ€mta innehĂ„llet pĂ„ sidan. I fallet med habrahabr.ru kommer svaret frĂ„n DNS att innehĂ„lla en hĂ€nvisning till IP-adressen för webbservern: 178.248.237.68, och sedan försöker webblĂ€saren redan koppla upp sig mot servern med den angivna IP-adressen.

 

Å sin sida, nĂ€r DNS-servern fĂ„r begĂ€ran "vilken IP-adress har vĂ€rden med namnet habrahabr.ru?", avgör den om den vet nĂ„got om den angivna vĂ€rden. Om inte, gör den en begĂ€ran till andra DNS-servrar i vĂ€rlden och försöker steg för steg lista ut svaret pĂ„ den stĂ€llda frĂ„gan. Till slut, nĂ€r det slutgiltiga svaret hittas, skickas de funna uppgifterna tillbaka till den vĂ€ntande kunden, och de sparas Ă€ven i cacheminnet pĂ„ sjĂ€lva DNS-servern, vilket gör att den kan svara pĂ„ liknande frĂ„gor mycket snabbare nĂ€sta gĂ„ng.

 

Ett vanligt problem Àr att, för det första, data frÄn DNS-förfrÄgningar överförs i öppen form (vilket gör att alla som har tillgÄng till trafikströmmen kan extrahera DNS-förfrÄgningar och de mottagna svaren och sedan analysera dem för sina syften; detta möjliggör reklamrikta med stor precision för DNS-kunden, vilket Àr ganska betydande!). För det andra har vissa internetleverantörer (vi pekar inte finger, men inte de allra minsta) en tendens att visa reklam istÀllet för den begÀrda sidan (vilket genomförs ganska enkelt: istÀllet för den angivna IP-adressen som begÀrs för vÀrden med namnet habranabr.ru returneras en slumpmÀssig IP-adress frÄn internetleverantörens webbserver, dÀr en sida som innehÄller reklam levereras). För det tredje finns det internetleverantörer som genomför mekanismer för att uppfylla krav pÄ blockering av specifika webbplatser genom att byta ut korrekta DNS-svar om IP-adresserna för blockerade webbresurser mot IP-adressen för sin egen server, som innehÄller hÀnvisningssidor (vilket gör tillgÄngen till sÄdana webbplatser mÀrkbart svÄrare), eller mot adressen för sin egen proxyserver, som filtrerar.

 

HÀr borde det förmodligen placeras en bild frÄn webbplatsen http://1.1.1.1/, som anvÀnds för att beskriva anslutningen till tjÀnsten. Författarna verkar vara helt sÀkra pÄ kvaliteten pÄ sin DNS (ÀndÄ Àr det svÄrt att vÀnta sig nÄgot annat frÄn Cloudflare):

 

Vi vÀlkomnar tjÀnsten frÄn Cloudflare pÄ adresserna 1.1.1.1 och 1.0.0.1, eller "public DNS-hyllan har fÄtt tillskott!"

 

Man kan helt förstĂ„ företaget Cloudflare, skaparna av tjĂ€nsten: de tjĂ€nar sitt bröd genom att upprĂ€tthĂ„lla och utveckla ett av de mest populĂ€ra CDN-nĂ€ten i vĂ€rlden (bland funktionerna finns inte bara distribution av innehĂ„ll utan ocksĂ„ DNS-vĂ€rdning), och pĂ„ grund av önskan hos dem, som inte Ă€r sĂ„ insatta, att lĂ€ra dem, som de inte kĂ€nner, vad de ska leta efter i det globala nĂ€tet, lider ofta av blockerade adresser för sina servrar frĂ„n lĂ„t oss inte nĂ€mna namn — sĂ„ det att ha en DNS som inte pĂ„verkas av "rop, visslingar och lappar" innebĂ€r mindre skada för deras verksamhet. Och de tekniska fördelarna (en liten detalj, men trevlig: sĂ€rskilt för kunderna till Cloudflares gratis DNS kommer uppdateringar av DNS-poster för resurser som finns pĂ„ företagets DNS-servrar att ske omedelbart) gör anvĂ€ndningen av den beskrivna tjĂ€nsten Ă€nnu mer intressant.

Endast registrerade anvÀndare kan delta i omröstningen. Logga in, tack.

Kommer du att anvÀnda den nya tjÀnsten?

  • Ja, bara genom att ange den i OS och/eller pĂ„ routern
  • Ja, och jag kommer att anvĂ€nda de nya protokollen (DNS över HTTPs och DNS över TLS)
  • Nej, jag Ă€r nöjd med de aktuella servrarna (detta Ă€r en offentlig leverantör: Google, Yandex osv.)
  • Nej, jag har till och med ingen aning om vad jag anvĂ€nder just nu
  • Jag anvĂ€nder mina egna rekursiva DNS med SSL-tunnel till dem

693 anvÀndare röstade. 191 anvÀndare avstod.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster