Cum se configurează smartphone-uri și PC-uri. Portal informativ

Dns criptat. DNSCrypt - criptarea traficului DNS pentru paranoici

Acest articol a fost scris la cererea unuia dintre cititorii blogului. Și trebuie să spun - subiectul este foarte interesant.

În zilele noastre, problema protejării traficului transmis pe Internet devine din ce în ce mai acută. Mulți oameni pot râvni datele tale - de la infractorii cibernetici care vor dori, prin toate mijloacele, să-ți obțină parolele la diverse servicii, către agențiile de informații care vor să știe totul despre fiecare pas al tău. Și pe timpul dat, există un numar mare de„autoapărare” pe internet. Un astfel de simplu, dar foarte mijloace eficiente, va fi discutat în acest articol - criptare DNS.

Există o resursă atât de minunată numită OpenDNS care furnizează serverele sale publice DNS. OpenDNS propune Soluții DNS pentru utilizatori și companii, ca alternativă la utilizarea serverului DNS oferit de furnizorul lor. Plasarea serverelor companiei în zone strategice și utilizarea unui cache mare de nume de domenii duce la faptul că OpenDNS, de regulă, îndeplinește cererile mult mai rapid, crescând astfel viteza de deschidere a paginii. Rezultatele interogării DNS sunt stocate în cache pentru ceva timp în sistem de operareși/sau aplicații, astfel încât această viteză să nu fie observată la fiecare solicitare, ci doar la acele solicitări care nu sunt stocate în cache.

Din moment ce traficul dintre serverul DNS și computerul dvs nu este criptat, acest lucru creează un risc serios de interceptare a traficului. Criptarea traficului DNS va proteja clientul de atacuri "bărbatul din mijloc"în care un atacator intră în canalul de comunicare și se preface a fi un server DNS. În plus, criptarea împiedică monitorizarea traficului și împiedică atacatorii să ghicească ID-urile pachetelor sau să trimită răspunsuri DNS false. Pur și simplu pune: Criptare DNS va preveni atacurile de tip phishing atunci când o copie rău intenționată a paginii este deschisă în locul paginii dorite, unde vă introduceți datele. Cu tot ceea ce presupune. În plus, va deveni mult mai dificil pentru ISP să afle ce site-uri ați vizitat (deoarece nu vor fi informații despre solicitările de rezoluție a numelor în jurnale). Pentru a organiza toate acestea, proiectul OpenDNS a lansat un utilitar minunat cu o sursă deschisă cod sursa- DNScrypt.

Acest utilitar va cripta tot traficul transmis între computerul dvs. și serverele OpenDNS. Dacă ISP-ul dvs. blochează un site web de către acesta numele domeniului- acum acest site funcționează! Un alt plus. Acest utilitar disponibil pe o mare varietate de sisteme. Voi descrie instalarea și configurarea folosind un exemplu. Debianși Ubuntu / Linux Mint.

V Ubuntu 14.04și Debian 8, acest utilitar nu este disponibil. Opțiunea 2: construiți-vă singur sau utilizați depozite terțe. În cazul Ubuntu, acesta va fi PPA:

sudo add-apt-repository ppa: xuzhen666 / dnscrypt
sudo apt-get update
sudo apt-get install dnscrypt-proxy

În cazul Debian, trebuie doar să descărcați pachetul dnscrypt-proxy din depozitul de lansare a testului. Și instalați cu GDebi, sau prin comandă sudo dpkg -i dnscrypt-proxy_1.6.0-2_amd64.deb.

Pentru auto-asamblare:

wget https://raw.github.com/simonclausen/dnscrypt-autoinstall/master/dnscrypt-autoinstall.sh && chmod + x dnscrypt-autoinstall.sh && ./dnscrypt-autoinstall.sh

În timpul procesului de instalare, vi se va solicita să selectați un server DNS. Alegeți OpenDNS.

Setari aditionale nu este necesar, pachetul contine tot ce ai nevoie. Tot ce trebuie să faceți este să vă reconfigurați puțin conexiunea la rețea. Deschideți setarea conexiuni de retea, alege-l pe al tău, accesează fila IPv4, schimbă Auto (Automat) pe Automat (numai adrese) (Automat (doar adresa)și specificați adresa DNS 127.0.2.1

Reporniți, conectați-vă și accesați

Crezi că anonimatul tău este protejat. Din păcate, nu este cazul. Există un canal foarte important pentru scurgerea informațiilor tale private - serviciu DNS... Dar, din fericire, s-a inventat și o soluție pentru asta. Astăzi vă voi arăta cum să criptați traficul DNS folosind utilitarul DNSCrypt.

Când utilizați HTTPS sau SSL, traficul dvs. HTTP este criptat, adică protejat. Când utilizați un VPN, tot traficul dvs. este deja criptat (desigur, totul depinde de setările VPN, dar, de regulă, acesta este cazul). Dar uneori, chiar și atunci când utilizați un VPN, solicitările dvs. DNS nu sunt criptate, ele sunt transmise așa cum sunt, ceea ce se deschide spatiu imens pentru „creativitate”, inclusiv atacuri MITM, redirecționarea traficului și multe altele.

Aici vine în ajutor utilitarul open source DNSCrypt, dezvoltat de creatorii OpenDNS, binecunoscuti de voi, - un program care vă permite să criptați cererile DNS. După instalarea acestuia pe computer, conexiunile tale vor fi și ele protejate și vei putea naviga pe internet mai sigur. Desigur, DNSCrypt nu este un panaceu pentru toate problemele, ci doar unul dintre instrumentele de securitate. Încă trebuie să utilizați o conexiune VPN pentru a cripta tot traficul, dar va fi mai sigur atunci când este asociat cu DNSCrypt. Dacă sunteți mulțumit de o explicație atât de scurtă, puteți sări imediat la secțiunea în care voi descrie instalarea și utilizarea programului.

Să încercăm să ne dăm seama mai profund. Această secțiune este pentru cei cu adevărat paranoici. Dacă prețuiești timpul tău, atunci poți trece direct la instalarea programului.
Deci, după cum se spune, este mai bine să vezi o dată decât să auzi de o sută de ori. Uită-te la desen.

Să presupunem că un client (laptop din imagine) încearcă să acceseze google.com În primul rând, ar trebui să
rezolvați numele de gazdă simbolic la adresa IP. Dacă configurația rețelei este de așa natură încât este utilizat serverul DNS al furnizorului (conexiune necriptată, linie roșie în figură), atunci rezoluția nume simbolic la adresa IP are loc printr-o conexiune necriptată.

Da, nimeni nu va ști ce date vei transfera pe dkws.org.ua. Dar există câteva puncte foarte frustrante. În primul rând, furnizorul, uitându-se la jurnalele DNS, va putea afla ce site-uri ați vizitat. Ai nevoie de el? În al doilea rând, sunt probabile atacuri de falsificare DNS și atacuri de snooping DNS. Nu le voi descrie în detaliu, s-au scris deja multe articole despre asta. Pe scurt, situația poate fi următoarea: cineva dintre dvs. și furnizor poate intercepta cererea DNS (și din moment ce cererile nu sunt criptate, nu va fi dificil să interceptați cererea și să citiți conținutul acesteia) și să vă trimită un „ răspuns fals”. Drept urmare, în loc să vizitați google.com, veți merge pe site-ul atacatorului, ca două mazăre într-o păstăi similară cu cea de care aveți nevoie, vă veți introduce parola de pe forum, iar apoi desfășurarea evenimentelor cred că este clar.

Această situație se numește scurgere DNS. Scurgerea DNS are loc atunci când sistemul dvs. chiar și după conectarea la server VPN sau Tor continuă să interogheze serverele DNS ale ISP-ului pentru rezolvarea numelor de domeniu. De fiecare dată când vizitați un site nou, conectați-vă la un nou server sau lansați unul aplicație de rețea, la care se referă sistemul dvs Furnizor de DNS pentru a rezolva numele la IP. Drept urmare, furnizorul dvs. sau oricine care se află pe „ultimul mile”, adică între dvs. și furnizor, poate obține toate numele nodurilor la care accesați. Opțiunea de mai sus cu falsificarea adresei IP este complet crudă, dar, în orice caz, este posibil să urmăriți site-urile pe care le-ați vizitat și să utilizați aceste informații în propriile scopuri.

Dacă vă „e frică” de furnizorul dvs. sau pur și simplu nu doriți ca acesta să vadă ce site-uri vizitați, puteți (desigur, pe lângă utilizarea VPN și alte măsuri de securitate) să configurați suplimentar computerul dvs. Utilizarea DNS Servere de proiect OpenDNS (www.opendns.com). Pe acest moment acestea sunt următoarele servere:

208.67.222.222
208.67.220.220

În același timp, nu aveți nevoie de niciun alt suplimentar software... Trebuie doar să vă configurați sistemul pentru a utiliza aceste servere DNS.

Dar problema interceptării conexiunilor DNS rămâne încă. Da, accesezi deja nu DNS-ul furnizorului, ci OpenDNS, dar poți totuși intercepta pachetele și vezi ce se află în ele. Adică, dacă doriți, puteți afla ce noduri ați accesat.

Așa că ajungem la DNSCrypt. Acest software vă permite să criptați Conexiune DNS... Acum ISP-ul tău (și toată lumea dintre tine și ei) nu va ști exact ce site-uri vizitați! o sa ma repet. Acest program nu este un înlocuitor pentru Tor sau VPN. Ca și înainte, restul datelor pe care le transmiteți sunt transmise fără criptare dacă nu utilizați nici VPN, nici Tor. Programul criptează doar traficul DNS.


DREPT CONCLUZIE

Articolul nu sa dovedit a fi foarte lung, deoarece programul în sine este foarte ușor de utilizat. Dar ar fi incomplet dacă nu aș menționa și VPN. Dacă ați citit acest articol, sunteți interesat de el, dar încă nu utilizați serviciile unui furnizor VPN pentru a vă cripta datele, atunci este timpul să o faceți.
Furnizorul VPN vă va oferi un tunel securizat pentru a vă transfera datele, iar DNSCrypt vă va asigura conexiunile DNS. Cu siguranță, Servicii VPN furnizorii sunt plătiți, dar trebuie să plătiți pentru securitate?

Puteți, desigur, să utilizați Tor, dar Tor este relativ lent și acesta este, orice s-ar spune, nu un VPN - tot traficul nu poate fi „torificat”. În orice caz (indiferent de opțiunea pe care o alegeți), conexiunile dvs. DNS sunt acum securizate. Rămâne doar să decideți asupra unui instrument de criptare a traficului (dacă nu ați făcut-o încă).

Ultima actualizare până la 30 octombrie 2016.

În browsere și în acest articol va fi Scurgere de trafic DNS. Ceea ce îi afectează pe toată lumea, chiar și pe cei care folosesc servicii VPN și cred că se află în spatele unui zid de piatră.

Bună prieteni! Astăzi vă voi spune ce este o scurgere de DNS, de ce ar trebui să știți despre ea și cum să vă protejați de ea folosind utilitarul gratuit DNSCrypt.

  • cuvânt înainte
  • Ce înseamnă o scurgere de DNS?
  • Cum se verifică o scurgere de DNS
  • Cum să remediați o scurgere de DNS folosind DNSCrypt
    • Descărcați DNSCrypt
    • Instalarea DNSCrypt
    • Folosind DNSCrypt
  • DNSCrypt în browserul Yandex
  • DNSCrypt în router
  • Concluzie
  • Evaluare și recenzii

Ce înseamnă o scurgere de DNS?

Când utilizați HTTPS sau SSL, traficul dvs. HTTP este criptat, adică sigur (nu perfect, dar sigur). Când utilizați un VPN, tot traficul dvs. este complet criptat (desigur, nivelul și calitatea protecției depind de setare corectă VPN, dar de obicei totul este configurat și funcționează corect).

Dar există situații în care chiar și cu folosind un VPN, interogările dvs. DNS sunt transmise într-o formă clară, necriptată. Acest lucru se deschide către atacator mari oportunități pentru creativitate. poate redirecționa traficul, poate folosi un atac de tip man-in-the-middle (MITM) și poate face o grămadă de alte lucruri care vă pot pune în pericol siguranța și anonimatul online.

Să încercăm să înțelegem mai profund această problemă. Dacă nu ești interesat de teorie, dar ești îngrijorat de siguranță, poți sări la capitolul următor. Dacă vrei să afli mai multe, fă-te confortabil, acum o să-ți scot creierul.

În exemplul nostru din figura de mai jos, vedeți cum un utilizator (calculator) încearcă să acceseze site-ul www .. Pentru a ajunge la site, trebuie mai întâi să rezolve numele de gazdă simbolic într-o adresă IP.

Dacă configurația rețelei este de așa natură încât serverul DNS al furnizorului este utilizat (conexiune necriptată, marcată cu o linie roșie), atunci numele simbolic este rezolvat la o adresă IP printr-o conexiune necriptată.

Ce este atât de groaznic în asta?

În primul rând, într-o astfel de situație, furnizorul poate vizualiza Istoricul DNSși aflați ce site-uri ați vizitat. Desigur, nu va afla ce fel de date au fost transmise, dar poate vizualiza cu ușurință adresele site-urilor.

În al doilea rând, există Șansă mare fii o victimă atac al hackerilor... Cum ar fi: DNS cache snooping și DNS spoofing.

Ce este DNS snooping și spoofing?

Pe scurt, pentru cei care nu știu.

Snooping DNS- cu ajutorul acestui atac, un atacator poate afla de la distanță ce domenii au fost rezolvate recent pe serverul DNS, adică ce domenii le-a vizitat recent victima.

Falsificarea DNS- Atacul se bazează pe infectarea cache-ului serverului DNS al victimei cu o intrare falsă despre corespondența numelui de gazdă DNS în care victima are încredere.

Întrucât cererile nu sunt criptate, cineva dintre dvs. și furnizor poate intercepta și citi cererea DNS și apoi vă poate trimite un răspuns fals ... com sau vk.com, veți fi dus la unul fals sau, după cum se spune , un hacker (nu numai paginile formularului, ci și url-ul în bara de adresa), după care introduceți numele de utilizator și parola și apoi înțelegeți singur ce se va întâmpla. Datele de autorizare vor fi în mâinile atacatorului.

Această situație se numește scurgere DNS. Se întâmplă atunci când sistemul dumneavoastră rezolvă numele de domenii chiar și după conectarea la serverul VPN sau rețeaua Tor tot intreaba servere DNS ISP-ul dvs. De fiecare dată când încercați să vizitați un site web, să vă conectați la un nou server sau să lansați un fel de aplicație de rețea, sistemul dumneavoastră va contacta serverele DNS ale ISP-ului dumneavoastră pentru a rezolva numele într-o adresă IP. Drept urmare, un hacker sau ISP-ul tău va putea afla toate numele nodurilor pe care le accesezi.

Dacă aveți ceva de ascuns, atunci vă sugerez să utilizați o soluție simplă - DNSCrypt. Puteți, desigur, să înregistrați alte servere DNS și să lăsați traficul prin ele. De exemplu, serverul Google 8.8.8.8 sau același OpenDNS 208.67.222.222, 208.67.220.220. În acest caz, desigur, veți ascunde istoricul vizitelor pe site de la furnizor, dar spuneți Google despre călătoriile dvs. online. În plus, nu va exista nicio criptare a traficului DNS și asta mare dezavantaj... Nu știu despre tine, dar nu mă activează, mai bine instalez DNSCrypt.

Cum se verifică o scurgere de DNS

Înainte de a trece la utilitatea în sine, aș dori să vă prezint serviciile speciale online. Acestea vă permit să verificați o scurgere de DNS.

Programul necesită Microsoft. Cadru net 2.0 și mai sus.

Puteți descărca DNSCrypt pentru Mac OS X utilizând linkul din Gitab sau de pe linkul de partajare a fișierelor de mai sus.

Dezvoltator de software OpenDNS.

Instalarea DNSCrypt

În acest articol, vom analiza modul de lucru cu versiunea de consolă a utilitarului. Vom configura DNSCript pe Windows 10. Instalarea pe alte versiuni de Windows nu este diferită.

Deci, despachetați arhiva descărcată și plasați conținutul folderului dnscrypt-proxy-win32 oriunde pe computer. În exemplul meu, l-am localizat în folderul „C: \ Program Files \ DNSCrypt \”.

Apoi deschideți linia de comandă ca administrator.


Rulați promptul de comandă ca administrator în Windows 10

Acum in Linie de comanda accesați folderul DNSCrypt. Acest lucru se poate face folosind comanda:

cd „C:\Fișiere de program\DNSCrypt”

Faceți clic dacă nu puteți copia comenzile.

După aceea, să ne pregătim să instalăm serviciul proxy. Mai întâi trebuie să alegeți un furnizor DNS. Am pus fișierul dnscrypt-resolvers.csv în arhivă. Acest fișier conține o listă cu majoritatea furnizorilor de DNS pe care DNSCrypt îi acceptă. Fiecare furnizor individual are un nume, descriere, locație și suport pentru DNSSEC și Namecoin. În plus, fișierul conține adresele IP și cheile publice necesare.

Selectați orice furnizor și copiați valoarea din prima coloană. În cazul meu, voi folosi CloudNS, așa că am copiat „cloudns-can”. Acum trebuie să vă asigurați că proxy-ul se poate conecta. Acest lucru se poate face folosind această comandă:

dnscrypt-proxy.exe -R "cloudns-can" --test = 0

Dacă nu reușiți, încercați să alegeți un alt furnizor și încercați din nou.

Dacă totul a mers bine, continuați cu instalarea și introduceți următoarea comandă:

dnscrypt-proxy.exe -R cloudns-can --install

Dacă totul funcționează corect, veți vedea următoarea ieșire:

Captură de ecran a modului în care ar trebui să arate în linia de comandă:

Apoi trebuie să accesați setările TCP / IP Windows și să modificați setările DNS la 127.0.0.1.

Pentru a elimina serviciul DNSCript, trebuie să reveniți setari de retea DNS la starea sa inițială. Acest lucru se face folosind această comandă:

dnscrypt-proxy --uninstall

Această comandă poate fi folosită și pentru a schimba furnizorul DNS. După aplicare, trebuie să repetați instalarea cu parametrii altui furnizor.

Dacă, după toată această procedură, dintr-un motiv oarecare, în timpul verificării, mai trebuie să determinați Adresă IP DNS furnizorul dvs. de internet, faceți clic pe butonul „Avansat”, care se află sub IP-ul înregistrat 127.0.0.1. În fereastra apărută " Opțiuni suplimentare…”, Accesați fila „DNS” și ștergeți toate adresele serverului DNS, cu excepția „127.0.0.1”.

Gata, acum s-a remediat scurgerea DNS.

Ați putea fi interesat și de articolul „”, care vorbea despre eliminare înregistrări DNS pe computer.

DNSCrypt în browserul Yandex

Recent, browserul Yandex a adăugat suport pentru DNSCripts. Ei bine, ce pot să spun, băieții de la Yandex lucrează și încearcă să protejeze utilizatorul - acest lucru este grozav, dar spre deosebire de utilitarul DNSCrypt, protecția Yandex este implementată numai la nivel de browser și nu la nivelul întregului sistem.

DNSCrypt în router

De asemenea, suportul pentru DNSCript este implementat în popular Firmware OpenWrt... Mai multe despre instalare și altele Informații suplimentare puteti afla pe pagina.

Concluzie

Desigur, utilitarul DNSCript și criptarea DNS în general nu este un panaceu și, într-adevăr, în securitatea informatiei nu există panaceu. Putem doar să ne maximizăm securitatea și anonimatul, dar, din păcate, nu va funcționa pentru a face prezența noastră în rețea 100% invulnerabilă. Tehnologia nu stă pe loc și întotdeauna există lacune. Prin urmare, vă sugerez să vă abonați la știrile noastre în în rețelele sociale pentru a fi mereu la curent. Este gratis.

Asta-i tot prieteni. Sper că acest articol v-a ajutat să vă remediați problema scurgerii DNS. Succes în noul 2017, fii fericit!

Evaluarea utilitarului DNSCrypt

Evaluarea noastră

DNSCrypt - utilitate gratuită pentru a proteja traficul DNS Prin criptarea traficului DNS și utilizarea serverelor DNS. Evaluarea noastră este foarte bună!

Evaluarea utilizatorului: 4,25 (36 evaluări)

Este adesea întrebat ce este DNSCrypt și de ce este necesar. Cu ceva timp în urmă am scris deja despre, apoi a fost vorba de suport în versiunea beta a browserului. De data aceasta ne vom uita la tehnologia în detaliu, iar Yandex Browser va servi drept exemplu și sursă de date de laborator. Analizez pachetele în Wireshark, pentru care am scris un mic parser DNSCrypt (în terminologia Wireshark, acesta este un disector, pe limba Lua; Nu am putut găsi parserul standard DNSCrypt în Wireshark).

DNSCrypt este un serviciu proxy care creează un canal securizat între rezolutorul DNS al unui client și un rezolutor DNS recursiv care rulează pe server. DNSCrypt are două părți, respectiv: client și server. Prin traficul DNS, care este transmis în mod regulat către formă deschisă, informații despre site-urile vizitate pot fi scurse. În plus, interogările DNS sunt un vector de atac comun pentru falsificarea adreselor. Schimbarea adresei de rezolvare a sistemului DNS la o adresă de server falsă este loc comun troieni pentru multi ani. Același lucru este valabil și pentru atacurile asupra routerelor de acasă. DNSCrypt vă permite să criptați (și, de asemenea, să oferiți protecție limitată împotriva falsificării) atât solicitărilor DNS, cât și răspunsurilor. Este posibil să se autentifice serverul și clientul, dar această caracteristică nu este întotdeauna utilizată. În general, subiectul ascunderii traficului DNS (DNS Privacy) câștigă acum o popularitate remarcabilă. Pe lângă DNSCrypt, există, de exemplu, protocolul „DNS over TLS” (DNS over TLS este un RFC 7858 proaspăt, care, în ciuda unor „inversii”, nu arată mai rău decât DNSCrypt). Există și alte evoluții.

DNSCrypt. Protocolul poate folosi atât TCP, cât și UDP ca transport. În practică, UDP este preferat dacă este disponibil, dar specificația necesită strict suportarea TCP (nu UPD, care este opțional). TCP atrage în mod natural prin natura sa de sesiune. Dar UDP este mult mai rapid, mai ales pentru serviciile aglomerate. Din cauza problemelor cu atacurile DDoS și a altor probleme de securitate, există acum o mișcare la modă către traducere. număr maxim servicii pe TCP, în special DNS. Cu toate acestea, mai jos consider că DNSCrypt funcționează numai prin UDP, deoarece aceasta este opțiunea tradițională pentru DNS. Numărul de port recomandat DNSCrypt (server) este 443 (este de obicei deschis la rețele corporative; practica utilizării 443 / udp, de exemplu, este standard pentru o serie de VPN-uri și alte servicii; 443 / tcp este TLS / HTTPS, baza serviciilor web). Cu toate acestea, Yandex în implementarea sa DNSCrypt folosește un număr neprivilegiat: 15353, probabil datorită unor idei pentru depășirea diferitelor bariere ale rețelei.

Mai multe despre bariere: nu vor fi probleme cu blocarea traficului DNSCrypt, dacă furnizorul de canal are o astfel de dorință. După cum va fi clar din descrierea de mai jos, acest protocol nu încearcă să ascundă în niciun fel faptul că este utilizat. În trafic a acestui protocol inclus markere standard care vă va permite să detectați și să filtrați pachetele chiar și pe cel mai primitiv router, folosind o regulă simplă de două linii. În acest caz, de exemplu, accesul pentru alte sesiuni TCP care operează pe portul 443 va fi păstrat.

În DNSCrypt, stabilirea unei sesiuni între un client și un server începe cu o solicitare DNS obișnuită trimisă la adresa și numărul portului corespunzător al gazdei care va furniza funcțiile de rezoluție a numelor. Aceasta este o cerere de înregistrare TXT pentru un nume un fel special(adică cererea poate fi deja filtrată cu ușurință). De exemplu, în cazul serviciului Yandex: 2.dnscrypt-cert.browser.yandex.net. Acest nume special nu poate fi delegat. O valoare de 2 corespunde versiunii DNSCrypt. Versiunea actuală este a doua. Ca răspuns, serverul ar trebui să trimită unul sau mai multe certificate DNSCrypt (subliniez: nu au nicio legătură cu certificatele SSL).

Captura de ecran arată un pachet cu un certificat de la serverul Yandex DNSCrypt.

Un certificat este un set de mai multe câmpuri: versiunea certificatului, valoarea semnăturii, cheie publică server, octeți magici pentru client (vor servi drept identificator pentru solicitările clientului - serverul va putea să-și dea seama ce cheie să folosească atunci când răspunde), număr de serie si data expirarii.

Specificația presupune că serverul transmite o cheie publică pe termen scurt ca parte a certificatului. (Cu toate acestea, în cazul serverului Yandex, cheia dată nu s-a schimbat de cel puțin la sfârșitul lunii martie, când a fost lansată versiunea beta a browserului cu suport DNSCrypt.) Semnătura de pe certificat trebuie să fie generată dintr-o pereche de chei diferită. Cheia publică a acestei perechi este cunoscută de client - este necesară verificarea semnăturii. Evident, nu are sens să semnezi certificatul cu aceeași cheie care este folosită în cadrul sesiunii. Nu am verificat dacă se validează certificat de server„Browser Yandex”. Cert este că, în modelul de amenințare pentru care este folosit DNSCrypt în browserul Yandex, validarea certificatului nu are prea mult sens, precum și compararea valorii cheii cu o copie salvată (voi reveni la acest punct mai jos).

Ca primitive criptografice, DNSCrypt folosește construcții din cifrul Salsa20 (XSalsa20), funcția hash Poly1305 (pentru a implementa criptarea autentificată) și algoritmul X25119-hsalsa20 pentru a genera o cheie de sesiune partajată (algoritmul folosește curba eliptică Curve25119 și curba eliptică hsalsa20). ). Aceste modele au fost dezvoltate de Daniel J. Bernstein și au fost mult timp recunoscute ca fiind foarte solide. Algoritmul pentru obținerea unui secret partajat (cheie de sesiune) este legat din punct de vedere matematic de algoritmul Diffie-Hellman. Rețineți că secretul partajat în în acest caz este posibil să se recupereze post factum dacă se cunoaște cheia secretă corespunzătoare de la o pereche de chei de server (sau client), acest lucru va permite decriptarea traficului înregistrat anterior, motiv pentru care specificația recomandă utilizarea cheilor pe termen scurt.

XSalsa20 în modul de criptare autentificată necesită un nonce de 192 de biți (24 de octeți). Reutilizarea aceleiași combinații de cheie și nonce nu este permisă. Acest lucru se datorează arhitecturii cifrului XSalsa20 - reutilizare nonce se va scurge: partea care ascultă va cunoaște valoarea XOR din perechea de potrivire text deschis... Prin urmare, nonce ar trebui să fie nou de fiecare dată, dar nu neapărat aleatoriu. Nonce-ul DNSCrypt vine în două încarnări: client și server.

Să ne uităm la criptat cererea clientului trimis de Yandex Browser.

Primul câmp al interogării este magia valorii clientului (Client query magic bytes), care utilizează porțiunea din cheia publică a serverului obținută anterior. Dacă este necesar, acești „octeți magici” pot servi drept semnătură care permite traficului să selecteze cererile trimise către DNSCrypt;
Următorul câmp este cheia publică Client;
Nonce-ul client este de 96 de biți (12 octeți), jumătate din nonce necesar pentru cifrul XSalsa20 (conform specificației DNSCrypt, umplut cu 0 octeți). Puteți utiliza unul sau altul contor, iar Yandex Browser face exact asta: se pare că aici se transmite o valoare de 64 de biți a marcajului de timp în milisecunde (timpul generării cererii), la care sunt atașați patru octeți de valori pseudoaleatoare. . În cazul în care chiar este timpul exact transmis în text clar, constat că parametrii de derive ceasul sistemului servesc ca un semn bun care identifică un specific dispozitiv hardware, - adică poate fi folosit pentru deanonimizare;
Ultimul câmp este cererea criptată în sine. Pentru criptare, se folosește o cheie secretă partajată, care este calculată de părți pe baza cheilor publice transmise. În cazul unui client, cheia publică este transmisă în pachetul de solicitare DNS (vezi mai sus). Browserul Yandex urmează practica standard și generează o nouă pereche de chei (publică / secretă) pentru X25119-hsalsa20 de fiecare dată când browserul este pornit. Pentru a alinia datele la o limită de bloc de 64 de octeți, așa cum o dictează specificația, este utilizat un complement standard (ISO / IEC 7816-4: 0x80 și zero octeți, după cum este necesar).

Blocul de date criptate este cel mai probabil rezultatul utilizării funcției crypto_box din biblioteca libsodium (sau NaCl, la care se face referire de specificația DNSCrypt; libsodium este o furcă de NaCl). Am presupus că codul de autentificare de 16 octeți (MAC) care este folosit pentru a verifica integritatea mesajului înainte de decriptare este probabil la începutul blocului. Cu toate acestea, din moment ce nu am încercat să descifrez datele, nu este atât de important să determinam locația codului. Pentru decriptare, puteți folosi cheia secretă, care este conținută în memorie în timp ce browser-ul rulează, dar pentru a o extrage, trebuie să lucrați cu depanatorul și dezasamblatorul pentru ceva timp.

Răspuns criptat primit de la server:

(Este ușor de observat că răspunsul prezentat în captură de ecran a fost primit la aproape cinci secunde după solicitare, de ce s-a întâmplat acest lucru - aparent, un subiect pentru o notă separată.)

Pachetul se deschide cu magie, în acest caz, aceștia sunt octeții care conțin jetonul de răspuns DNSCrypt (din nou, o semnătură bună pentru detectarea traficului). Acești octeți sunt definiți de protocol și trebuie să apară la începutul oricărui răspuns de la server la o solicitare de rezoluție DNS;
Următorul câmp este nonce (Răspuns nonce). Câmpul conține valoarea nonce utilizată de server la criptarea acestui răspuns. Câmpul este construit din doi părti egale, 12 octeți fiecare: nonce de la cererea client corespunzătoare și complement de server;
Partea finală a pachetului sunt datele de răspuns criptate, formatul este similar cu cererea.

Acum să revenim la modelul de amenințare, folosind exemplul browserului Yandex. Dacă utilizarea DNSCrypt este activată în setările browserului, de exemplu, prin serverele Yandex, dar accesul la serverul corespunzător este blocat, atunci browserul (ca și versiunea beta) în mod transparent, fără avertisment, trece la utilizarea soluției de sistem. De ce acest lucru nu face sens validarea certificatelor de server DNSCrypt? Deoarece un atacator activ care poate falsifica pachetele la nivel de IP poate bloca pur și simplu accesul la server pentru a dezactiva DNSCrypt în browser, în loc să irosească resurse pentru a face răspunsuri. Din aceasta putem concluziona că modelul de amenințare Yandex nu include falsificarea activă a pachetelor pe drumul de la serverul DNSCrypt la client.

În cele din urmă, un cuvânt sau două despre modul în care DNSCrypt se referă la DNSSEC. DNSSEC nu ascunde datele de trafic DNS, ci le protejează de falsificare, indiferent de canalul de schimb de informații. În cazul DNSSEC, nu contează pe ce canal sunt primite datele de la DNS, principalul lucru este că cheile sunt la locul lor. DNSCrypt - ascunde traficul și îl protejează în mod limitat de falsificare pe drumul de la soluția recursivă (serviciul de rezolvare) la client. Dacă datele au fost modificate în drumul către solutor (sau pe serverul de rezolvare însuși) și nu acceptă DNSSEC, atunci clientul va primi informații corupte, deși printr-un canal protejat de DNSCrypt. Serverele care furnizează DNSCrypt pot suporta și DNSSEC.

Mai departe - opinii și discuții

(Mesajele de mai jos sunt adăugate de cititorii site-ului prin intermediul formularului aflat la sfârșitul paginii.)

Oricine se gândește la anonimatul pe internet știe metodă grozavă ascunde adresa IP pe internet este un serviciu VPN. Cu toate acestea, chiar și cu o conexiune VPN, interogările către serverul DNS sunt adesea lăsate nesecurizate și puteți urmări cu ușurință unde merg interogările DNS. Se mai numește și „DNSleaks” sau „DNS leak”.

Să aruncăm o privire mai atentă la ce este DNS și care sunt problemele.

După cum știți, fiecare computer de pe Internet are propria sa adresă IP, fără a cunoaște adresa IP a computerului, este imposibil să îi trimiteți informații sau o solicitare. Adresa IP este sub forma unui număr de 4 octeți, separați prin puncte (de exemplu, 162.234.12.110 sau 78.31.54.226).

Pentru om obisnuit amintirea unui număr mare de adrese IP nu este ușoară, așa că la începutul dezvoltării Internetului a fost nevoie de un instrument care să ușureze viața utilizatorilor de internet. DNS a devenit un astfel de instrument - sistemul de nume de domeniu. Serverul DNS este un instrument care vă permite să determinați o adresă IP după un nume de domeniu.

De exemplu, ați introdus adresa site-ului web în linia browserului, browserul a trimis o solicitare către serverul DNS, care este specificată în setările conexiunii dvs. la Internet. Serverul trimite înapoi un pachet de răspuns care conține adresa IP a site-ului dorit.

Pe de o parte, totul se face convenabil - tocmai ați conectat cablul card de retea, vi se atribuie automat un server DNS al ISP-ului cu răspuns rapid și totul funcționează. Dar, pe de altă parte, există două probleme cu această schemă:

1) Nu există nicio criptare a conexiunii... Aceasta înseamnă că orice atacator vă poate intercepta traficul și vă poate falsifica adresa IP. De exemplu, vă arătați o pagină falsă a unei bănci de internet. De asemenea, este recomandabil să ascundeți acest trafic de la furnizor sau de la aplicarea legii(nu știi niciodată ce J).

2) Serverele DNS ale furnizorilor sunt obligate prin lege să păstreze jurnalele(de la ce IP, ce site-uri au fost vizitate și timpul de conectare), precum și, la cererea organelor de drept, furnizați aceste jurnale (sper că toată lumea știa asta? J). Mai mult, 99% dintre serverele DNS din lume scriu jurnalele și nu le ascund.

Dacă dintr-o dată nu vrei ca datele tale să fie interceptate de cineva sau să citești jurnalele vizitelor tale, există opțiune de încredere... Ce ar trebui făcut:

1) Trebuie să criptați conexiunea. Pentru asta este programul DNSproxy. Nu se conectează direct la serverul DNS, ci este criptat prin soluția DNS (redirecționează pur și simplu cererile către serverul DNS). La rândul său, rezolutorul transmite datele către serverul DNS și printr-o conexiune criptată. Adică, în acest fel, folosind sniffer-uri (de exemplu, WIreshark), puteți afla doar adresa IP a resolverului. Dar, deoarece pachetele sunt criptate folosind „criptografia cu curbă eliptică”, este imposibil să se determine cu ce server DNS specific facem schimb de date.

2) Trebuie să utilizați servere DNS care nu păstrează jurnalele. După cum înțelegeți, serverele furnizorului dispar imediat. De asemenea, pentru anonimat, nu puteți folosi serverele DNS ale Google sau Yandex, deoarece recunosc sincer că stochează informații (citiți Acordurile lor de confidențialitate). Dar există servere DNS care ne pot ajuta. Acesta este www.opennicproject.org. Site-ul spune că serverele nu scriu niciun log (bine, să credem). Din păcate, aceste servere sunt instabile și uneori se blochează. Pentru a rezolva această problemă, puteți utiliza programul „Proxy DNS acrilic". Vă permite să faceți interogări nu către un server DNS, ci către 10 deodată. Iar pachetul de la server care ajunge cel mai repede va fi acceptat de program. Prin urmare, vom rezolva două probleme deodată - minimizăm pierderea vitezei de solicitare (pentru că cel mai mult schimb rapid datele apar de obicei cu serverele DNS ale furnizorului) și nivelează instabilitatea oricăror servere.

Deci, trebuie să criptăm conexiunea la DNS securizat Server. Acest lucru este util nu numai pentru cei care nu folosesc VPN (cum puteți rezolva problema scurgerii DNS va fi scris mai târziu). Să începem:

2) În setările dvs conexiune retea trebuie să înregistrați manual adresa DNS. Mergem la „Centrul de management al rețelei și acces general„->” Conexiune prin retea locala„->” Proprietăți „->” Internet Protocol Version 4 TCP / IPv4”. Am pus 127.0.0.1 acolo. A doua linie trebuie lăsată goală.

3) Pentru a porni AcrylicDNSProxy, treceți prin Start și faceți clic pe „ Porniți serviciul Acrilic". Ar trebui să apară un mesaj de pornire cu succes.

4) Acum verificăm serverele noastre DNS la www.perfect-privacy.com/dns-leaktest. Ar trebui să fie ceva de genul pe ecran:


Orez. 2

Puteți adăuga un fișier AcrylicController.exe la pornire.

5) Acum criptăm cererile noastre către serverele DNS folosind programul DNScrypt.

6) Despachetați și rulați dnscrypt-winclient.exe. Acolo selectăm placa noastră de rețea și facem clic pe Instalare. Conexiunea la serverele DNS este acum criptată.

7) Să verificăm ce ne vor arăta acum serviciile noastre de verificare. Accesați www.perfect-privacy.com/dns-leaktest. Niciunul dintre serverele noastre nu ar trebui definit.

Și dacă intri pe http://whoer.net, atunci singurul lucru pe care îl poate afișa este adresa rezolutorului DNS prin care trec cererile DNS. Serverele în sine sunt „necunoscute”.


Orez. 3

Criptare VPN + DNS

Figura arată o diagramă tipică a conexiunii dvs. atunci când vă conectați la servere VPN.


Fig 4.

După cum puteți vedea, există o vulnerabilitate - solicitările DNS pot fi trimise simultan atât prin serverul VPN, cât și direct către serverul DNS specificat de pe conexiunea dvs. la rețea.

S-ar părea că puteți pur și simplu să înregistrați manual serverul DNS în setările de conexiune ca 127.0.0.1, astfel încât să nu existe cereri inutile către DNS-ul furnizorului. Dar, evident, la deconectarea de la Internet VPN nu va funcționa deoarece VPN-ul folosește propriile servere DNS. Dacă doar introduceți cele două servere ale proiectului www.opennicproject.org, atunci se va reduce viteza de navigare pe Internet atunci când VPN-ul este dezactivat. În acest caz, se recomandă, de asemenea, să instalați programul AcrylicDNSProxy, care nu va lăsa viteza de navigare să scadă. Dar, deoarece AcrylicDNSProxy este instalat, de ce să nu instalezi și DNScrypt?

Dacă utilizați servicii VPN 100% din timp, puteți să înregistrați pur și simplu o adresă IP Setări DNS: 127.0.0.1. Acest lucru va fi suficient.

Astfel, a fost găsită o schemă interesantă care vă permite să anonimizați și să ascundeți cererile DNS, ceea ce vă va ajuta puțin dacă dați peste „autorități”, și dacă un hacker local rău decide să redirecționeze cererile DNS și să le arate copiilor site-urile în loc de „Așteaptă”. un minut" - site-uri pentru adulți...

Notă: dacă nu aveți nevoie de toate acestea, instalați AcrylicDNSProxy specificând serverele furnizorului dvs., Yandex, Google etc., ceea ce vă va oferi o accelerare tangibilă a navigării pe Internet.

Vă mulțumim pentru atenție.

Top articole similare