Coś Strasznego Coś Strasznego
271
BLOG

Bezpieczny DNS - co to jest i do czego służy DNSSEC?

Coś Strasznego Coś Strasznego Internet Obserwuj temat Obserwuj notkę 3

Dzień Dobry


Całą masa polityków i tzw "ekspertów" uprawie pie******* o tym, jak to ma być bezpieczny internet,

i ileż to nasze państwo wysiłków wkłada w ten szczytny cel.


Mieliśmy już i specjalne Ministerstwo od Cyfryzacji  i CERT, a nawet mamy Wojska Obrony Cyberprzestrzeni podobno,

które to wojska mają nawet dowódcę w stopniu Generała.


Spróbuję tutaj przypomnieć o pewnym zabezpieczeniu kluczowego dla działania internetu i naszej "Cyberprzestrzeni" systemu DNS.

Co to jest system DNS, nie widzę tu powodu kopiować tekstu z Polskiej wikipedi:

https://pl.wikipedia.org/wiki/Domain_Name_System


Z punktu widzenia bezpieczeństwa system DNS ma kilka bardzo istotnych wad.

Zapytanie DNS wysłane z naszego komputera jest wysyłanie protokołem UDP, który to protokół przypomina rzut kamieniem , może dojść do docelowego hosta lub nie.

Dodatkowo może zostać zmodyfikowany czyli po prostu sfałszowany na każdym urządzeniu, które pośredniczy miedzy naszym komputerem a serwerem DNS, w praktyce takich urządzeń na całej trasie pakietu może być od kilkudziesięciu do nawet kilkuset, jeśli uwzględnimy urządzenia warstwy II modelu ISO czyli switche, huby i mosty sieciowe.

Same serwery DNS też nie należą do najbezpieczniejszych na świecie  i zdarzały się do nich rozmaite włamania.

Aby złagodzić te istotne wady systemu DNS, grupa robocza IETF opracowała w 2005 roku system DNSSEC :
https://www.internetsociety.org/resources/deploy360/2011/dnssec-rfcs-3/

https://pl.wikipedia.org/wiki/DNSSEC


Teoretycznie DNSSEC jest bardzo prosty w zastosowaniu.

Przy pomocy odpowiedniego oprogramowania generujemy parę kluczy kryptograficznych, jeden publiczny a drugi prywatny:

klucz publiczny publikujemy w strefie DNS naszej domeny, prywatnego nie publikujemy nigdzie, trzymamy w bezpiecznym miejscu,

używamy klucza prywatnego wyłącznie w celu podpisania rekordów domeny, które publikujemy w strefie DNS naszej domeny.

Jak działa sprawdzanie takich kluczy DNSSEC?

Serwer DNS naszego dostawcy internetu, lub inny, jakiego używamy w systemie, powinien sprawdzać podpisy DNSSEC.

Piszę powinien, chociaż większość serwerów DNS polskich operatorów internetu tego nie czyni, bo po prostu nie musi.


Jak wygląda prawidłowy podpis DNSSEC?

tu przykład banku Millenium:

drill -D bankmillennium.pl
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 60733<br /> ;; flags: qr rd ra ad ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; bankmillennium.pl.    IN    A

;; ANSWER SECTION:
bankmillennium.pl.    600    IN    A    193.201.167.41
bankmillennium.pl.    600    IN    RRSIG    A 8 2 600 20201209102136 20201129092136 59958 bankmillennium.pl. D/OmkAzREtS9AylP9HQ0Del64fa38rhfP0txLCcHTN6MeNf0W6y2huYFk86u6/Bjw+OH8xLYiaUqOP8LLZk+DBFjTHMv5K+tCxb/lhMH4rtIhVox8CH6m5Xd/Rp7i5f01VTAP5R6qdMVCpawrCr1cQJvGeTliJwYhYtiospJNjLmcqD41jnvsMJRmcmflFmjbRiipAU+2/SFs5nDLIK4+UZU9/V5TlrynLgAcfdl/K2xnBFkZcqridhrZMKQEqWRCX1Uf0vQSg/gnFL7ZG1b+XlMmohYHRiNoyPw4/g5semGaQnpw7Opjhv21ciV5XCzzvb9yz911YAVyEukwWa0Ug==

Pole RRSIG to właśnie jest cyfrowy podpis rekordu A.


Jak wygląda sprawdzanie domeny, która takiego podpisu nie posiada:

drill -D salon24.pl
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 24642<br /> ;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; salon24.pl.    IN    A

;; ANSWER SECTION:
salon24.pl.    25    IN    A    51.254.41.56

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 11 msec
;; EDNS: version 0; flags: do ; udp: 512
;; SERVER: 8.8.4.4
;; WHEN: Mon Dec  7 13:14:19 2020
;; MSG SIZE  rcvd: 55

Jak widać, domena salon24.pl podpisu DNSSEC nie posiada.

jak zrobić taki podpis na przykładzie domeny salon24.pl

Najpierw sprawdzamy, na jakich serwerach DNS jest "zaparkowana" nasza domena:

;; QUESTION SECTION:
;; salon24.pl.    IN    NS

;; ANSWER SECTION:
salon24.pl.    59    IN    NS    dns108.ovh.net.
salon24.pl.    59    IN    NS    ns108.ovh.net.
Jak widać, domena jest zaparkowana na serwerach operatora domen OVH.
OVH od dosyć dawna wspiera mechanizm DNSSEC.

Gdzie znaleźć odpowiednią opcję w konfiguracji domeny?

W panelu klienta:


image



A co zrobić, jeśli miejsce, gdzie parkujemy naszą domenę, nie wspiera technologii DNSSEC?

Możemy albo domagać się od operatora serwera DNS, gdzie trzymamy zaparkowaną domenę, aby włączył mechanizm DNSSEC, albo przenieść  (wykonać transfer domeny) naszą domenę do innego usługodawcy, który taką funkcjonalność oferuje.


Czy podpisy DNSSEC są skuteczne? tak

Nawet, jeśli serwer DNS naszego dostawcy internetu nie sprawdza podpisów DNSSEC, to nie musi stanowić problemu.

Współczesne przeglądarki, jak np Google Chrome czy Mozilla Firefox, domyślnie używają mechanizmu DNS over HTTPS,

w ten sposób omijają DNSy zdefiniowane w systemie operacyjnym, na rzecz globalnych dostawców usługi DNS, takich jak Google czy CloudFlare.

https://pl.qaz.wiki/wiki/DNS_over_HTTPS

Globalne firmy oferujące usługi DNS zazwyczaj już od dawna sprawdzają podpisy DNSSEC.

Jak sprawdzić manualnie, czy domena ma podpis DNSSEC?

W powyższych przykładach użyłem polecenia systemowego drill, dostarczanego przez program ldnsutils, obecnego w repozytoriach większości dystrybucji Linuxa.

instalacja tego programu  w Debianie/Ubuntu/Mint sprowadza się do wydania magicznego polecenia:

sudo apt install ldnsutils


I taka ciekawostka:

do stosowania praktycznie bezpłatnego mechanizmu DNSSEC nie dorosły jeszcze, (mam nadzieję,  że nie umysłowo),

między innymi:

Bank PKO - domena pkobp.pl

Mbank - mbank.pl

Bank PEKAO pekao.pl

PZU    pzu.pl

ZUS zus.pl

i co ciekawsze, podpisu nie ma też strona ePUAP pod adresem:

obywatel.gov.pl


Czy szewc nosi buty?

podpisów nie mają też domeny:

cyber.mil.pl

cert.pl.

Komentarz na temat naszych krajowych "bezpieczników" z CERT.PL czy CYBER.MIL.PL

pozostawiam bez komentarza.


Pozdrawiam

 


Straszny, Bezczelny, Chamski, itp...

Nowości od blogera

Komentarze

Inne tematy w dziale Technologie