Błąd w weryfikacji dostępu do domeny mógł doprowadzić do nieuprawnionego pozyskania certyfikatu TLS

Błąd w weryfikacji dostępu do domeny mógł doprowadzić do nieuprawnionego pozyskania certyfikatu TLS

Właściwa weryfikacja dostępu do domeny jest jednym z podstawowych czynników pozwalających na zachowanie bezpieczeństwa oferowanego przez publiczne certyfikaty TLS. Jednak jak w każdym oprogramowaniu, także w aplikacjach urzędów certyfikacji zdarzają się błędy.

W tym wpisie znajdziecie opis ciekawego błędu, który mógł doprowadzić do nieuprawionego wydania certyfikatu TLS typu Domain Validation.

Weryfikacja dostępu do domeny

Najprostszy typ certyfikatu TLS to certyfikat typu Domain Validation (DV). Certyfikat taki zawiera jedynie nazwę domeny i w celu jego uzyskania wymagane jest potwierdzenie, że posiada się nad nią kontrolę. Istnieje co najmniej kilka metod pozwalających na potwierdzenie dostępu do domeny. Wśród najczęściej stosowanych przez urzędy certyfikacji wymienić można:

  • modyfikację rekordu DNS,
  • umieszczenie pliku na serwerze,
  • odpowiedź na maila wysłanego na jeden z pięciu predefiniowanych adresów (admin@example.com, administrator@example.com, webmaster@example.com, hostmaster@example.com, postmaster@example.com).

Oprócz powyższych, istnieje jeszcze kilka innych dozwolonych sposobów potwierdzania dostępu do domeny. Wśród nich jest metoda, która korzysta z danych zapisanych w rekordach WHOIS danej domeny. Pozwala ona na weryfikację poprzez kontakt z osobą zamawiającą certyfikat z wykorzystaniem adresu mailowego zapisanego w rekordach registrant, technical lub administrative bazy WHOIS. I to właśnie błąd popełniony przez Symanteca w sposobie walidacji adresów email zapisanych w bazie WHOIS mógł doprowadzić do wydania certyfikatu TLS dla danej domeny osobie, która nie posiadała nad nią kontroli.

Pominięte znaki specjalne

Jak informuje na swoim blogu odkrywca podatności Andrew Ayer błąd wynikał z braku poprawnej obsługi znaków specjalnych, które mogą występować w części lokalnej (przed znakiem @) adresu email, takich jak + i =. Jeżeli adres email zawierał któryś z tych znaków aplikacja Symanteca traktowała dopiero część znajdującą się po nim jako prawidłowy adres. Błąd choć trywialny mógł mieć stanowić poważne zagrożenie. Znak + jest powszechnie wykorzystywany do tworzenia aliasów pocztowych – taki sposób ich generowania oferuje np. Gmail.

20160207-software_bug

Jak zatem można było wykorzystać ten błąd do zdobycia certyfikatu TLS dla nieswojej domeny? Wystarczyło w bazie WHOIS odnaleźć domenę, która posiadała przypisany adres mailowy ze znakiem + lub = w nazwie np. tech+whois@example.com. Wtedy Symantec za prawidłowy adres do kontaktu technicznego domeny example.com uznałby whois@example.com (zamiast właściwego tech+whois@example.com) i to właśnie na ten adres wysłałby wiadomość z prośbą o weryfikację domeny co pozwoliłoby na uzyskanie certyfikatu TLS. Przekładając to na bardziej praktyczny przykład: gdyby to Google dla domeny gmail.com wpisało do bazy WHOIS np. adres tech+whois@gmail.com to do uzyskania certyfikatu TLS dla tej popularnej domeny  wystarczyłoby założyć konto whois@gmail.com i z jego pomocą potwierdzić dostęp.

Błąd został usunięty przez Symanteca po kilku dniach od zgłoszenia. Zweryfikowano także, że nie został on wykorzystany do nieuprawnionego uzyskania certyfikatu TLS.

Podziel się:Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *