Við hittum þjónustuna frá Cloudflare á heimilisföngum 1.1.1.1 og 1.0.0.1, eða „opinbera DNS-hillan er komin!“

Við hittum þjónustuna frá Cloudflare á heimilisföngum 1.1.1.1 og 1.0.0.1, eða „opinbera DNS-hillan er komin!“

Cloudflare fyrirtæki fram opinbert DNS á heimilisföngum:

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

Stefnan er sögð vera „Persónuvernd fyrst“ svo notendur geti haft hugarró varðandi innihald beiðna sinna.

Þjónustan er áhugaverð að því leyti að, auk venjulegs DNS, veitir hún möguleika á að nota tækni DNS-yfir-TLS и DNS-yfir-HTTPS, sem mun mjög koma í veg fyrir að veitendur hlera beiðnir þínar á leið beiðna - og safna tölfræði, fylgjast með, stjórna auglýsingum. Cloudflare heldur því fram að dagsetning tilkynningarinnar (apríl 1, 2018, eða 04/01 í amerískri merkingu) hafi ekki verið valin af tilviljun: hvaða annar dagur ársins verða „einingarnar fjórar“ kynntar?

Þar sem áhorfendur Habr eru tæknilega kunnir, þá er hefðbundinn hlutinn "af hverju þarftu DNS?" Ég mun setja það í lok færslunnar, en hér mun ég segja meira hagnýt atriði:

Hvernig á að nota nýju þjónustuna?

Einfaldast er að tilgreina ofangreind DNS netþjóns vistföng í DNS biðlaranum þínum (eða sem andstreymis í stillingum staðbundins DNS netþjóns sem þú notar). Er skynsamlegt að skipta út venjulegum gildum Google DNS (8.8.8.8, o.s.frv.), eða aðeins sjaldgæfari Yandex opinberir DNS netþjónar (77.88.8.8 og aðrir álíka) til netþjónanna frá Cloudflare - þeir munu ákveða fyrir þig, en tala fyrir byrjendur áætlun svarhraði, samkvæmt honum er Cloudflare hraðari en allir keppendur (ég skal skýra það: mælingarnar voru teknar af þriðja aðila þjónustu og hraðinn til ákveðins viðskiptavinar getur auðvitað verið mismunandi).

Við hittum þjónustuna frá Cloudflare á heimilisföngum 1.1.1.1 og 1.0.0.1, eða „opinbera DNS-hillan er komin!“

Það er miklu áhugaverðara að vinna með nýjar stillingar þar sem beiðnin flýgur til netþjónsins í gegnum dulkóðaða tengingu (reyndar er svarinu skilað í gegnum hana), nefnd DNS-over-TLS og DNS-over-HTTPS. Því miður eru þau ekki studd „úr kassanum“ (höfundar telja að þetta sé „ennþá“), en það er ekki erfitt að skipuleggja vinnu sína í hugbúnaðinum þínum (eða jafnvel á vélbúnaðinum þínum):

DNS yfir HTTP (DoH)

Eins og nafnið gefur til kynna fara samskipti fram yfir HTTPS rás, sem þýðir

  1. tilvist lendingarstaðar (endapunktur) - hann er staðsettur á heimilisfanginu https://cloudflare-dns.com/dns-queryOg
  2. viðskiptavinur sem getur sent beiðnir og tekið við svörum.

Beiðnir geta annað hvort verið á DNS vírsniði sem skilgreint er í RFC1035 (sendir með POST og GET HTTP aðferðum), eða á JSON sniði (með GET HTTP aðferð). Fyrir mig persónulega virtist hugmyndin um að gera DNS beiðnir í gegnum HTTP beiðnir óvænt, en það er skynsamlegt korn í því: slík beiðni mun standast mörg umferðarsíunarkerfi, flokkun svara er frekar einföld og það er enn auðveldara að búa til beiðnir. Venjuleg bókasöfn og samskiptareglur bera ábyrgð á öryggi.

Biðjið um dæmi, beint úr skjölunum:

FÁ beiðni á DNS vírsniði

$ curl -v "https://cloudflare-dns.com/dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB" | hexdump
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f968700a400)
GET /dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB HTTP/2
Host: cloudflare-dns.com
User-Agent: curl/7.54.0
Accept: */*

* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
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
* Connection #0 to host cloudflare-dns.com left intact
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 beiðni á DNS vírsniði

$ 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
* Connection #0 to host cloudflare-dns.com left intact
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

Sama en með 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"
    }
  ]
}

Augljóslega getur sjaldgæfur (ef að minnsta kosti einn) heimabeini unnið með DNS á þennan hátt, en þetta þýðir ekki að stuðningur muni ekki birtast á morgun - og, athyglisvert, hér getum við alveg innleitt að vinna með DNS í forritinu okkar (eins og nú þegar ætla að búa til Mozilla, bara á Cloudflare netþjónum).

DNS yfir TLS

Sjálfgefið er að DNS fyrirspurnir eru sendar án dulkóðunar. DNS yfir TLS er leið til að senda þau í gegnum örugga tengingu. Cloudflare styður DNS yfir TLS á venjulegu tengi 853 eins og mælt er fyrir um RFC7858. Þetta notar vottorð gefið út fyrir cloudflare-dns.com gestgjafann, TLS 1.2 og TLS 1.3 eru studd.

Að koma á tengingu og vinna í samræmi við siðareglur fer eitthvað á þessa leið:

  • Áður en DNS tengingu er komið á geymir viðskiptavinurinn base64 kóðaðan SHA256 kjötkássa af TLS vottorði cloudflare-dns.com (kallað SPKI)
  • DNS viðskiptavinur kemur á TCP tengingu við cloudflare-dns.com:853
  • DNS viðskiptavinur byrjar TLS handaband
  • Meðan á TLS handabandsferlinu stendur, kynnir cloudflare-dns.com gestgjafinn TLS vottorðið sitt.
  • Þegar TLS tenging hefur verið komið á getur DNS viðskiptavinurinn sent DNS beiðnir yfir örugga rás, sem kemur í veg fyrir að beiðnum og svörum sé hlert og falsað.
  • Allar DNS fyrirspurnir sem sendar eru um TLS tengingu verða að vera í samræmi við að senda DNS í gegnum TCP.

Dæmi um beiðni um DNS yfir TLS:

$ kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com  example.com
;; DEBUG: Querying for owner(example.com.), class(1), type(1), server(1.1.1.1), port(853), protocol(TCP)
;; DEBUG: TLS, imported 170 system certificates
;; DEBUG: TLS, received certificate hierarchy:
;; 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, skipping certificate PIN check
;; DEBUG: TLS, The certificate is trusted.
;; 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 size: 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

;; Received 468 B
;; Time 2018-03-31 15:20:57 PDT
;; From 1.1.1.1@853(TCP) in 12.6 ms

Þessi valkostur virðist virka best fyrir staðbundna DNS netþjóna sem þjóna þörfum staðarnets eða eins notanda. True, með stuðningi staðalsins er ekki mjög gott, en - við skulum vona!

Tvö orð til skýringar á því sem samtalið snýst um

Skammstöfunin DNS stendur fyrir Domain Name Service (svo að segja „DNS þjónusta“ er nokkuð óþarfi, skammstöfunin inniheldur nú þegar orðið „þjónusta“), og er notuð til að leysa einfalt verkefni - til að skilja hvaða IP-tölu tiltekið hýsilnafn hefur. Í hvert skipti sem einstaklingur smellir á tengil eða slær inn heimilisfang í veffangastiku vafrans (segðu eitthvað eins og "https://habrahabr.ru/post/346430/"), er mannleg tölva að reyna að komast að því hvaða netþjóni á að senda beiðni um að fá efni síðunnar. Þegar um habrahabr.ru er að ræða mun svarið frá DNS innihalda vísbendingu um IP-tölu vefþjónsins: 178.248.237.68, og þá mun vafrinn nú þegar reyna að hafa samband við netþjóninn með tilgreindu IP-tölu.

Aftur á móti ákvarðar DNS-þjónninn, eftir að hafa fengið beiðnina „hvað er IP-tala hýsilsins sem heitir habrahabr.ru?“, hvort hann viti eitthvað um tilgreindan hýsil. Ef ekki, þá sendir það beiðni til annarra DNS netþjóna í heiminum og reynir skref fyrir skref að finna út svarið við spurningunni. Þar af leiðandi, þegar endanlegt svar er fundið, eru fundnu gögnin send til viðskiptavinarins sem bíður enn eftir þeim, auk þess sem þau eru geymd í skyndiminni á DNS-þjóninum sjálfum, sem gerir þér kleift að svara svipaðri spurningu mun hraðar næst.

Algengt vandamál er að í fyrsta lagi eru DNS fyrirspurnargögnin send á skýran hátt (sem gefur öllum sem hafa aðgang að umferðarflæðinu möguleika á að einangra DNS fyrirspurnirnar og svörin sem þeir fá og flokka þær síðan í eigin tilgangi; þetta gefur getu til að miða á auglýsingar með nákvæmni fyrir DNS viðskiptavin, sem er töluvert mikið!). Í öðru lagi, sumir ISP (við munum ekki benda fingur, en ekki minnstu) hafa tilhneigingu til að sýna auglýsingar í stað einnar eða annarrar umbeðnar síðu (sem er útfært á einfaldan hátt: í stað tilgreindrar IP tölu fyrir fyrirspurn frá habranabr.ru hýsingarnafn, tilviljunarkenndur einstaklingur Þannig er heimilisfangi vefþjóns þjónustuveitunnar skilað þar sem síðan er birt með auglýsingunni). Í þriðja lagi eru til netaðgangsveitur sem innleiða kerfi til að uppfylla kröfur um að loka einstökum síðum með því að skipta út réttum DNS svörum um IP tölur lokaðra vefauðlinda fyrir IP tölu netþjóns þeirra sem inniheldur stubbsíður (þar af leiðandi aðgangur að slíkar síður áberandi flóknari), eða á heimilisfang proxy-þjónsins sem framkvæmir síun.

Þetta ætti líklega að vera mynd af síðunni. http://1.1.1.1/, notað til að lýsa tengingunni við þjónustuna. Höfundarnir virðast vera nokkuð öruggir um gæði DNS þeirra (það er hins vegar erfitt að búast við öðru frá Cloudflare):

Við hittum þjónustuna frá Cloudflare á heimilisföngum 1.1.1.1 og 1.0.0.1, eða „opinbera DNS-hillan er komin!“

Hægt er að skilja Cloudflare, skapara þjónustunnar, til fulls: þeir vinna sér inn sitt brauð með því að viðhalda og þróa eitt vinsælasta CDN net í heimi (sem felur í sér ekki aðeins dreifingu efnis heldur einnig að hýsa DNS svæði), og vegna þess að löngun þeirra, sem er ekki vel að sér, kenndu þeim sem þeir þekkja ekki, til þess hvert á að fara í alþjóðlegu neti, þjáist nokkuð oft af því að loka netföngum netþjóna sinna frá við skulum ekki segja hver - þannig að það að hafa DNS sem er ekki fyrir áhrifum af "hrópum, flautum og skrípi" fyrir fyrirtækið þýðir minni skaða fyrir fyrirtæki þeirra. Og tæknilegir kostir (smá, en ágætur: sérstaklega fyrir viðskiptavini ókeypis DNS Cloudflare, að uppfæra DNS skrár yfir auðlindir sem hýst eru á DNS netþjónum fyrirtækisins verður samstundis) gera notkun þjónustunnar sem lýst er í færslunni enn áhugaverðari.

Aðeins skráðir notendur geta tekið þátt í könnuninni. Skráðu þig inn, takk.

Munt þú nota nýju þjónustuna?

  • Já, einfaldlega með því að tilgreina það í stýrikerfinu og/eða á beini

  • Já, og ég mun nota nýjar samskiptareglur (DNS yfir HTTP og DNS yfir TLS)

  • Nei, ég er með nógu marga núverandi netþjóna (þetta er opinber þjónusta: Google, Yandex, osfrv.)

  • Nei, ég veit ekki einu sinni hvað ég er að nota núna

  • Ég nota endurkvæma DNS minn með SSL göngum til þeirra

693 notendur kusu. 191 notandi sat hjá.

Heimild: www.habr.com

Bæta við athugasemd