Podstawowa infrastruktura, która by to umożliwiała, istnieje i nazywa się uwierzytelnianiem nazwanych podmiotów (DANE) na podstawie DNS i jest określona w RFC6698 . Działa za pomocą TLSA
rekordu zasobu, który określa certyfikat lub jego klucz publiczny jednostki końcowej lub jednego z jego urzędów certyfikacji w łańcuchu (W rzeczywistości istnieją cztery różne typy, szczegółowe informacje można znaleźć w dokumencie RFC).
Adopcja
DANE nie spotkało się jeszcze z powszechnym przyjęciem. VeriSign monitoruje adopcję DNSSEC i DANE i śledzi jej rozwój w czasie :
Dla porównania, według VeriSign, istnieje około 2,7 miliona stref DNS, co oznacza, że nieco ponad 1% wszystkich stref ma co najmniej jeden rekord TLSA.
Nie mogę udzielić żadnej wiarygodnej odpowiedzi, dlaczego DANE, ale oto moje spekulacje:
DANE cierpi na ten sam problem, co listy odwołania certyfikatów (CRL) i protokół statusu certyfikatu online (OCSP). W celu weryfikacji ważności przedstawionego certyfikatu należy skontaktować się z osobą trzecią. Hanno Böck daje dobry przegląd , dlaczego jest to duży problem w praktyce. Sprowadza się to do tego, co robić, gdy nie możesz skontaktować się z osobą trzecią. Dostawcy przeglądarek zdecydowali się na soft-fail (aka zezwolenie) w tym przypadku, co sprawiło, że całość była raczej bezcelowa, a Chrome ostatecznie zdecydował się wyłączyć OCSP w 2012 roku.
DNSSEC
Prawdopodobnie DNS oferuje znacznie lepszą dostępność niż serwery CRL i OCSP urzędów certyfikacji, ale nadal uniemożliwia weryfikację offline. Ponadto DANE, powinien być używany tylko w połączeniu z DNSSEC. Ponieważ normalny DNS działa na nieuwierzytelnionym UDP, jest dość podatny na fałszowanie, ataki MITM itp. Przyjęcie DNSSEC jest znacznie lepsze niż przyjęcie DANE, ale wciąż jest dalekie od wszechobecnego.
A dzięki DNSSEC ponownie napotykamy problem miękkiej awarii. O ile mi wiadomo, żaden główny system operacyjny serwera / klienta domyślnie nie zapewnia sprawdzania poprawności DNSSEC.
Następnie pojawia się również kwestia odwołania. DNSSEC nie ma mechanizmu odwoływania i zamiast tego polega na kluczach krótkotrwałych.
Wsparcie oprogramowania
Całe oprogramowanie uczestniczące musi implementować obsługę DANE.
Teoretycznie może się wydawać, że byłoby to zadaniem bibliotek kryptograficznych, a twórcy aplikacji nie musieliby wiele robić, ale faktem jest, że biblioteki kryptograficzne zwykle dostarczają tylko prymitywów, a aplikacje same muszą wykonać wiele konfiguracji i konfiguracji (i niestety istnieje wiele sposobów, aby naprawić błędy).
Nie wiem, czy jakikolwiek większy serwer WWW (np. Apache lub nginx) na przykład zaimplementował DANE lub planuje to zrobić. Serwery sieciowe mają tutaj szczególne znaczenie, ponieważ coraz więcej rzeczy opiera się na technologiach internetowych, dlatego często są one pierwszymi, w których rzeczy są wdrażane.
Kiedy porównamy CRL, OCSP i OCSP Stapling, możemy być w stanie wywnioskować, jak potoczy się historia adopcji DANE. Tylko niektóre aplikacje korzystające z OpenSSL, libnss, GnuTLS itp. Obsługują te funkcje. Zajęło to trochę czasu, zanim główne oprogramowanie, takie jak Apache lub nginx, wspierało go i ponownie powracając do artykułu Hanno Böcka, źle zrozumieli i ich implementacja jest wadliwa. Inne duże projekty oprogramowania, takie jak Postfix lub Dovecot , nie obsługują OCSPi mają bardzo ograniczoną funkcjonalność CRL, zasadniczo wskazując na plik w systemie plików (który niekoniecznie musi być ponownie odczytywany regularnie, więc trzeba będzie ręcznie przeładowywać serwer itp.). Pamiętaj, że są to projekty, które często korzystają z TLS. Następnie możesz zacząć szukać rzeczy, w których TLS jest znacznie mniej powszechny, na przykład PostgreSQL / MySQL, a może oferują one w najlepszym razie listy CRL.
Więc nie wdrożyłem go nawet w nowoczesnych serwerach sieciowych, a większość innych programów nawet nie wdrożyła OCSP i CRL, powodzenia z 5-letnią aplikacją lub urządzeniem dla przedsiębiorstw.
Potencjalne aplikacje
Więc gdzie właściwie możesz użyć DANE? Na razie nie w ogólnym Internecie. Jeśli kontrolujesz serwer i klienta, być może jest to opcja, ale w tym przypadku często możesz skorzystać z przypinania klucza publicznego.
W przestrzeni pocztowej DANE zyskuje pewną trakcję, ponieważ SMTP przez długi czas nie miał żadnego uwierzytelnionego szyfrowania transportowego. Serwery SMTP czasami używały TLS między sobą, ale nie weryfikowały, czy nazwy w certyfikatach rzeczywiście pasowały, teraz zaczynają to sprawdzać za pośrednictwem DANE.