Dzisiaj natknąłem się na następującą perełkę: Firma Sunbelt Software dokonała dość niemiłego odkrycia. Znane wszystkim (a przynajmniej bardziej zaawansowanym) użytkownikom Windows certyfikaty Thawte wcale nie zapewniają bezpieczeństwa. Całość tu (Chip Online), źródłem informacji (no może nie samym) jest natomiast ITBlog. Cóż za odkrycie! Normalnie na miarę odkrycia Ameryki! Zaraz, ale przecież to jest oczywiste...
Kapcie z nóg... czyli po co podpisywać programy
Disclaimer, czyli dlaczego te kapcie mi spadły
Kapcie z nóg (zresztą nie pierwszy już raz) spadły mi po przeczytaniu twórczej interpretacji postu zamieszczonego na ITBlog.
Do czego służy certyfikat (do podpisywania kodu)
Oczywiście czytanie ze zrozumieniem boli redaktorów Chipa. A może nie dotarli do fragmentu: Sam certyfikat dostarczany przez Thawte oczywiście nie zaświadcza, że oprogramowanie nim podpisane nie wyrządzi szkód naszemu systemowi i danych na nim zawartych. Certyfikat cyfrowy służący do podpisywania kodu jest wystawiany temu, kto go chce zakupić. Firma wystawiająca certyfikaty, w tym przypadku Thawte, nie gwarantuje jakości oprogramowania produkowanego przez tę firmę. Weryfikacji podlega natomiast sama firma (jej tożsamość/autentyczność). Na przykład ja nie mógłbym zakupić certyfikatu dla firmy, powiedzmy, Microsoft. Certyfikat oczywiście mogę zakupić, ale widnieć będą w nim dane mojej firmy.
...a i przy SSL tak jest...
Dokładnie taka sama sytuacja jest w przypadku witryn WWW i certyfikatów SSL. Firma wystawiająca certyfikat w żaden sposób nie gwarantuje, że na stronie nie ma szkodliwych elementów, lub że dana aplikacja udostępniana z wykorzystaniem konkretnego certyfikatu SSL jest bezpieczna (na przykład bankowość elektroniczna nie zawiera błędów). Celem certyfikatu/podpisu cyfrowego jest potwierdzenie tożsamości, a co za tym idzie, w przypadku podpisanych aplikacji - ustalenie źródła pochodzenia kodu i potwierdzenie jego integralności.
Certyfikat do podpisu (lub podpis cyfrowy) nie jest jednoznaczny z certyfikatem spełnienia wymagań!
Nie należy mylić faktu podpisania aplikacji z posiadaniem przez nią certyfikatu spełnienia wymagań typu Designed for Windows. Owszem, w niektórych przypadkach spełnienie wymagań Microsoftu jest potwierdzane podpisem cyfrowym. Tak dzieje się na przykład w przypadku sterowników. Wówczas jednak program/sterownik podpisywany jest certyfikatem pochodzącym z konkretnego Root CA, właśnie po to, by kontrolować nie to kto podpisuje, ale co jest podpisywane. I tutaj znów - nawet fakt podpisu na sterownikach nie gwarantuje, że są bezbłędne (zarówno funkcjonalnie jak i pod względem bezpieczeństwa). Oznacza to, że przeszły pozytywną weryfikację odnośnie listy wymagań. Lista ta z czasem ulega modyfikacjom, jeśli zajdzie taka potrzeba. Kilka lat temu był tego przykład. Stwierdzono mianowicie, że wiele sterowników kart sieciowych ujawnia pamięć jądra (tu info dla samego Windows). Co więcej, okazało się, że w dokumentacji i przykładowych kodach udostępnionych przez Microsoft błąd ten (w przypadku Windows) miał swoje źródło. Po stwierdzeniu tego faktu test odnośnie tego konkretnego problemu został dołączony do procedury certyfikacji sterowników kart sieciowych.
...to na kij te podpisy!
No to po co te podpisy? Powtarzam, podpisy cyfrowe pozwalają na:
- określenie źródła pochodzenia aplikacji,
- zapewniają integralność aplikacji,
Certyfikaty (podpisy) nie gwarantują jednak że:
- oprogramowanie nie jest szkodliwe,
- oprogramowanie jest bezbłędne,
Nic nowego pod słońcem...
Zresztą cała sprawa wcale nie jest nowością. Atsiv też był podpisany cyfrowo. A PKI daje taką fajną możliwość unieważnienia certyfikatu, co zresztą zrobiono (jeszcze raz odsyłam do artykułu na ten temat).
Nie ufajmy Thawte... ja na razie ufam
Michał w swoim blogu rozważa następującą kwestię:
Czy to może oznaczać, ze Microsoft zadecyduje o wyłączeniu opcji “ufaj Thawte” w jakiejś kolejnej poprawce, SP czy kolejnej wersji systemu operacyjnego? Raczej mało prawdopodobne. Ale może to oznaczać, że Thawte będzie musiało nieco zmienić swoją politykę dostarczania technologii podpisu cyfrowego każdemu kto o to poprosi i zapłaci wystarczająco dużo. W innym przypadku będziemy świadkami dośc poważnego kryzysu zaufania do instytucji certyfikujących (którą na marginesie jest także Microsoft).Zgadzam się, że wyłączenie opcji "ufaj Thawte" jest mało prawdopodobne. Uważam jednak, że do czasu, gdy Thawte będzie solidnie weryfikować tożsamość osoby/firmy występującej o certyfikat, o "kryzysie zaufania" nie można mówić. Dla mnie kryzys zaufania miałby miejsce wówczas, gdy pierwszy lepszy Ziutek z ulicy mógłby dostać certyfikat dla dowolnej firmy (w szczególności dla mojej). Do czasu jednak, gdy dane w certyfikatach wykorzystanych do podpisu kodu są prawidłowe, nie interesuje mnie to, że może dostać je każdy. Ważne jest tylko to, by pamiętać, że podpis cyfrowy NIE gwarantuje bezpieczeństwa podpisanej aplikacji.
Ćwiczenie intelektualne...
Autorzy wirusów są poszukiwani, aresztowani, sądzeni, wsadzani do więzienia. Siłą rzeczy wolą pozostać anonimowi. Czy podpiszą swojego wirusa certyfikatem, który pozwoli na łatwe stwierdzenie ich tożsamości? Dziękuję. Nie mam więcej pytań.
A autorzy spyware są bezczelni...
...bo jak inaczej określić żądania firm produkujących tego typu oprogramowanie o usunięcie sygnatur identyfikujących ich oprogramowanie jako "potencjalnie niepożądane"? Swoją drogą - niech podpisują swoje dzieła. Przynajmniej będzie wiadomo kto jest ich autorem.
...i aby się nie irytować...
...przestanę wchodzić na zakładkę Internet i komputery na Onecie. Za dużo tam "przedruków" z Chipa, a w Chipie za dużo takich wspaniałych newsów...
//EDIT: 15092007 - wywaliłem początek zdania, którego nie skończyłem :)
dobre opracowanie