Dzień doberek!
Na sam początek...
Znów się widzimy w mniej lub bardziej interesującym poście. Tym razem chciałbym się przyjrzeć procesowi aktywacji Windowsa XP i nie tylko, bo złapałem się jeszcze za Windowsa Vistę, 7 i niektóre wersje pakietu Office (XP, 2003, 2007 i 2010). Jak firma Microsoft uwielbia zabijać swoje produkty i nie było by nic w tym złego, gdyby nie to, że często podczas tego procesu dostaje się konsumentom - a to jakieś narzędzia deweloperskie usunął, tutaj jakieś aktualizacje. Wydawało by się, że podobnie jest z serwerami aktywacyjnymi Windowsa XP i innych produktów, że są po prostu wyłączone i jedyne co nam pozostaje to aktywacja telefoniczna. Nic bardziej mylnego. Serwery aktywacji mają się dobrze, a główną przeszkodą jaka stoi za aktywacją XP'ka przez Internet jest... szyfrowanie.
Kiedy świat przeniósł się na HTTPS...
Początkowo kiedy Internet jaki znamy obecnie raczkował komunikacja wyglądała bardzo prosto. Łączyliśmy się ze stroną internetową, serwer tejże strony odsyłał nam ją w czytelnej postaci, a nasza przeglądarka to odczytywała i zamieniała w gotową ładną witrynę. Nie mniej jak się okazywało takie rozwiązanie bywało niebezpieczne - otóż nasze dane tak po prostu jawnie sobie wędrowały w Internecie. Loginy, hasła - wszystko szło odczytać. Dlatego też powoli zaczęto przenosić się na odpowiednie protokoły szyfrowania jak SSL. Ich zadaniem jest szyfrować ruch w Internecie jednak aby to robić potrzebują jakiejś stałej informacji dzięki której odpowiednio zaszyfrują ten ruch. No bo może się zdarzyć tak, że serwer zaszyfruje sobie ruch, a klient go nie zrozumie bo korzysta z innych metod szyfrowania. Taką informacją są klucze. Ich zadanie jest niemalże podobne do kluczy używanych w zamkach. Aby dostać się do informacji musimy posiadać klucz na podstawie którego za pomocą odpowiednich obliczeń można odszyfrować dane. Podobnie wygląda z szyfrowaniem tylko tutaj te obliczenia są niejako odwracane. Metoda szyfrowania może być symetryczna lub asymetryczna. W tej pierwszej klucz do "zamykania" i "otwierania" danych jest taki sam, a w tej drugiej jest para kluczy: publiczny do szyfrowania i prywatny do odszyfrowywania. W naszej komunikacji zarówno klient jak i serwer ma takową parę kluczy i za jej pomocą szyfrują i deszyfrują informacje. Ale na tym się balanga nie kończy. Istnieje jeszcze coś takiego jak Certyfikat. Jest to informacja ściśle związana z naszym kluczem publicznym, która pozwala stwierdzić, że "tak ten klucz publiczny jest autentyczny, a nie np. jakiś cracker go podstawił". Certyfikat zawiera klucz publiczny i opis podmiotu do którego klucz należy. Sam certyfikat jest zwykle ważny przez jakiś czas - zależy od tego jak bardzo jest ważny. Zwykle normalny certyfikat jest ważny rok, albo parę miesięcy. Certyfikat zawiera również informacje o tym z jakiej metody szyfrowania korzysta, bo tych metod jest dużo: mamy RSA, SHA-1, SHA-2. Każda inaczej szyfruje dane. Bardzo istotne na temat certyfikatów jest to, że nie możemy sobie go od tak wygenerować. Znaczy możemy ale taki certyfikat musi zostać podpisany przez kogoś zaufanego. Jeżeli sobie samemu go podpiszemy to inne komputery nie będą mu ufać, bo nie znają tego kto go podpisał. Dlatego też istnieją takie podmioty jak Główne Urzędy Certyfikacyjne (Root Authority). których zadaniem jest podpisywanie certyfikatów innych podmiotów. Te urzędy posiadają własne certyfikaty które są ważne zwykle przez parę lat i to nimi podpisują pomniejsze certyfikaty. Certyfikaty którymi posługują się Główne Urzędy Certyfikacyjne nazywają się Głównymi Certyfikatami (Root Certificates). I to są w 100% zaufane certyfikaty, które producenci zamieszczają w swoich programach, systemach operacyjnych, urządzeniach - po prostu wszędzie. No i tutaj dochodzimy do istoty sprawy. Co się dzieje jak główny certyfikat wygaśnie? Odpowiedź jest prosta - wszystkie certyfikaty jakie zostały nim podpisane nagle stają się niebezpieczne i większość systemów czy przeglądarek ich nie zaakceptuje. No załóżmy, że mam stronę example.com i ona ma certyfikat. Ten certyfikat został podpisany przez Główny Urząd X, ale certyfikat tego urzędu wygasł. Z tego powodu mój certyfikat jest nieważny i osoby które wejdą na example.com zostaną przywitane ostrzeżeniem. Co w takiej sytuacji należy zrobić? Musimy mieć certyfikat który został podpisany ważnym Głównym Certyfikatem. I teraz najważniejsze pytanie: Załóżmy, że w systemie Windows ten ważny certyfikat nie jest zainstalowany - no po prostu Microsoft dodał go w jakiejś aktualizacji, ale my tej aktualizacji nie zainstalowaliśmy. To co się dzieje? Nasza strona dalej jest postrzegana jako niebezpieczna. Oczywiście, jeżeli przeglądarka korzysta z certyfikatów zainstalowanych w systemie. Np. Firefox ma własny bank certyfikatów i z niego korzysta, przez co to Mozilla musi dbać o aktualność certyfikatów. No to wracając do naszej aktywacji...
Więc wracając do XP'ka..
Serwery aktywacyjne Microsoftu korzystały jeszcze parę lat temu z certyfikatu podpisanego przez Główny Urząd o nazwie DigiCert. I wtedy to wszystko działało, bo te certyfikaty były domyślnie zainstalowane w XPku a jak nie to przecież działał Windows Update z którego automatycznie się Główny Certyfikaty aktualizowały. Niestety ten główny certyfikat DigiCert wygasł, w związku z czym Microsoft od tego samego urzędu uzyskał nowy aktualny certyfikat, podpisany nowym i aktualnym Głównym Certyfikatem od DigiCert. Ten nowy główny certyfikat jest jeszcze bardziej bezpieczny gdyż korzysta z metody szyfrowania SHA-2, a stary korzystał z SHA-1. Niestety jest to zgubą dla XPka, który po prostu... nie rozumie SHA-2. Otóż ja sobie mogę wymyślić jakąś metodę szyfrowania, ale protokół, który z niej korzysta również musi ją znać. Nie może być tak, że ja sobie stworzę SecurePieszka1024 i zacznę tym podpisywać certyfikaty - nie. Ja sobie stworzę SecurePieszka1024 ale protokoły takie jak TLS czy SSL muszą zaimplementować tę metodę. Microsoft trochę skopał sprawę, a trochę nie. Nie dodał pełnej obsługi SHA-2 do Windowsa XP owszem. Ale dodał częściową obsługę i to już wiele zmienia. Pełna obsługa SHA-2 jest potrzebna do działania usługi Windows Update, a ponieważ XP jej nie ma to WU również nie działa. Częściowa obsługa SHA-2 wystarczy do tego aby nasz XP'ek rozumiał certyfikaty korzystające z tej metody. Dlaczego to mówię? Otóż ta obsługa została dodana... dopiero w Service Packu 3. Niestety ale Windows XP RTM, SP1 i SP2 nie rozumieją certyfikatów SHA-2, po ich instalacji, system stwierdza, że są uszkodzone. Przez to na tych wersjach systemu nie idzie ani przywrócić aktywacji przez Internet, ani włączyć Windows Update. Jeszcze raz powtórzę:
Na Windowsie XP RTM, SP1 i SP2 nie da się przywrócić aktywacji przez Internet, ponieważ system nie rozpoznaje certyfikatów SHA-2.
Sprawa wygląda zgoła inaczej na Windowsie XP SP3. Tam, jak już mówiłem, występuje częściowa obsługa certyfikatów SHA-2. Dlatego też jedyne co musimy zrobić to ręcznie zaktualizować Główne Certyfikaty. Po aktualizacji w naszym systemie pojawi się ten nowy certyfikat od DigiCert z którego korzystają serwery aktywacyjne MS. Niestety nie da się tego zrobić automatycznie, ponieważ WU nadal nie działa (tutaj jak mówiłem trzeba PEŁNEJ obsługi SHA-2), ale powstały różne narzędzia pozwalające na aktualizację certyfikatów. Moim ulubionym narzędziem jest Cert Updater v1.6, do którego linka zamieszczę poniżej posta. Jest ono bajecznie proste. Uruchamiamy plik exe, program zapyta się czy zaktualizować certyfikaty, my się zgadzamy, program pobierze je ze strony Windows Update za nas i za nas je zainstaluje w systemie. Po tym procesie możemy wrócić do okienka aktywacyjnego i wybrać opcję aktywacji przez Internet. Powinien nas przywitać komunikat: Twoja kopia systemu Windows została pomyślnie aktywowana! Także podsumowując:
Po ręcznej aktualizacji certyfikatów jest możliwość przywrócenia aktywacji przez Internet do Windowsa XP SP3!
Zatrzymując się na chwilę przy Viście i 7...
Zabrałem się również za systemy Windows Vista i 7. Tutaj nie ma większych problemów. Vista RTM, SP1 i SP2 również posiadają tylko częściową obsługę SHA-2, ale Windows 7 ma już pełną obsługę. Z tego powodu dla Visty trzeba wgrywać specjalne paczki, które dodają SHA-2 pełne (tak takie istnieją), a dla 7 wystarczy zainstalować dwie aktualizacje, aby Windows Update na tych systemach również działał. Jednak to nie o WU tutaj mowa. Otóż tutaj sprawa z procesem aktywacji wygląda podobnie. W systemie są zainstalowane stare certyfikaty i musimy je ręcznie zaktualizować. Tutaj również z pomocą przychodzi Cert Updater v1.6, który pobierze potrzebne certyfikaty i je zainstaluje. Z tym, że tutaj to działa i na RTM i na wszystkich Service Packach (na obu systemach). Ewentualnie na Windowsie 7 możemy zainstalować aktualizacje przywracające sprawność Windows Update. Wtedy system sam powinien pobrać certyfikaty. Jednakże opcja z Cert Updaterem jest szybsza. Podsumowując:
Po ręcznej (i/lub automatycznej dla 7) aktualizacji certyfikatów jest możliwość przywrócenia aktywacji przez Internet do Windowsa Vista RTM, SP1, SP2 oraz Windowsa 7 RTM, SP1!
Podziwiając dziwy Office XP, 2003 i 2007...
Z ciekawości chwyciłem się też pakietów Office w różnych wersjach. Na początku XP a.k.a. 2002, 2003 i 2007. W tym przypadku jestem w stanie stwierdzić, że te pakiety żyją własnym życiem. Otóż tak, nadal pojawia się problem braku certyfikatów w systemie, ale jest on co najmniej dziwny. Ja pakiety Office instalowałem i testowałem na wszystkich wersjach XP'ka, Visty i 7. Więc od początku. Na Windowsie XP, czy to RTM czy SP1, SP2 czy nawet SP3, aktywacja przez Internet w tych trzech pakietach nie działała. Po prostu nie. Oczywiście na RTM, SP1 i SP2 nie działa przez brak obsługi SHA-2, Jednak w przypadku SP3: Office 2002 nie wiedzieć czemu korzystał z bardzo przestarzałego protokołu szyfrowania SSL 2.0, którego nie obsługują już serwery Microsoftu. Nawet po jego wyłączeniu w systemie, Office dalej z niego korzystał co mnie bardzo dziwi. Jednak przypadek Office 2003 i 2007 jest jeszcze dziwniejszy. Te pakiety przy aktywacji, do komunikacji z serwerami MS korzystały z protokołu TLS 1.0 - tego samego z którego korzysta XP do aktywacji - który jest wspierany jeszcze przez serwery MS. Ale jakoś to nie działało. Po prostu jak analizowałem ruch sieciowy to widziałem, że Office wysłał w TLSie 1.0 Handshake do serwera, ale ten nie odpowiedział (spece zrozumieją). Okno aktywatora po prostu znika po chwili. Naprawdę dziwne to jest i nie udało mi się naprawić tego. Dlatego też stwierdzam:
Pakietów Office 2002 (XP), 2003, 2007 NIE DA SIĘ aktywować przez Internet w systemach Windows XP RTM, SP1, SP2 i SP3. Nawet po aktualizacji certyfikatów (tylko SP3).
Za to sprawa wygląda ZUPEŁNIE inaczej w przypadku Windowsa Vista, 7, a pewnie i nawet 8 i 10. Tam pakiet Office nie dość, że normalnie korzystał z TLS 1.0 i się aktywował... to jeszcze sam sobie pobrał certyfikaty. Nie wspomniałem o tym ale systemy operacyjne podczas aktywacji próbowały pobrać certyfikaty z WU, ale coś im nie wychodziło. Dlatego należało je ręcznie zaktualizować. Office robi dokładnie to samo, z tym, że na systemie Vista i 7 (i nowszych też pewnie) mu się to udaje. Normalnie certyfikaty się pobierają i Office potem korzysta z nich do komunikacji z serwerami aktywacyjnymi. Także nie ma potrzeby ręcznej aktualizacji certyfikatów. Warto jednak wiedzieć, że te certyfikaty nie zapisują się w systemie więc do aktywacji samego systemu nadal trzeba je zaktualizować ręcznie. Także:
Pakiety Office 2002 (XP), 2003, 2007 DA SIĘ aktywować przez Internet w systemach Windows Vista i 7 (pewnie też nowszych). NIE WYMAGANE jest ręczne aktualizowanie certyfikatów! Aktywacja działa Out-Of-The Box.
Kiedy nowsze jest gorsze - Office 2010...
O Office 2010 krótko - nie zawsze nowsze znaczy lepsze. Tak jak O2002, 2003 i 2007 same sobie pobrały certyfikaty tak Office 2010 nie potrafi tego. No po prostu działa tak samo jak systemy. Niby pobiera ale nie do końca bo nie działa. Trzeba samemu zaktualizować certyfikaty. I taka sytuacja jest i na XP SP3 i na Viście i na 7. Także Cert Updater w dłoń. Nie wiem:
Pakiet Office 2010 da się aktywować przez Internet w systemach Windows XP SP3, Vista i 7, po ręcznej aktualizacji certyfikatów.
Na podsumowanie...
Doprawdy było to ciekawie spędzone dwa tygodnie. Na testowanie tego wszystkiego, a wyniki również są ciekawe. Chciałbym tylko nadmienić, że we wszystkich wymienionych przypadkach działa aktywacja telefoniczna. Czyli możemy aktywować telefonicznie Office XP, 2003 i 2007 na Windowsie XP, jak i możemy aktywować samego Windowsa XP RTM, SP1 i SP2, tyle że telefonicznie. Jeżeli ktoś nie lubi dzwonić do Centrum Aktywacji firmy Microsoft (np. ja), a chce aktywować produkt, gdzie aktywacja przez Internet nie działa już na zawsze to polecam użyć linku microsoft.gointeract.io, który krąży od jakiegoś czasu po sieci. Są osoby, które mówią, że gointeract.io to nie domena Microsoftu i mają 100% rację. Domena ta należy do firmy Jacada, która świadczy usługi o nazwie Jacada Interact Automation Platform. Jest to platforma, która pozwala innym firmom zautomatyzować komunikację z klientami przez infolinię. To Microsoft nie może korzystać z usług firm trzecich? Link do microsoft.gointeract.io w formie linku skróconego był wysyłany dzwoniącym na infolinię na sms. Niestety zauważyłem, że od jakiegoś czasu MS tego nie robi, ale formularze na gointeract.io nadal działają, także można z nich korzystać. A jak ktoś się boi to może dzwonić.
Pojawia się jeszcze pytanie: Czy jest się czegoś bać? Czy kiedyś aktywacja przez Internet przestanie działać? W teorii tak, a w praktyce nie. Aktywacja może przestać działać kiedy MS, albo zamknie serwery, albo zmieni certyfikaty na coś nowszego niż SHA-2 co ani XP, ani Vista, ani 7 nie obsługują, albo przejdzie całkowicie na nowszą wersję TLSa i wyłączy obsługę TLS 1.0, 1.1 i 1.2. Jednakże wszystkie te scenariusze są dość odległe i przez najbliższe parę lat nie winny nam grozić. A nawet jeżeli to zawsze jest aktywacja telefoniczna - ta będzie działać zapewne przez długi, długi czas. Jednak, może warto teraz zacząć robić backupy aktywowanych systemów. Chociaż w sumie. Skoro Windows Update nie działa, to po co mieć legalnie aktywowanego takiego XPka czy Vistę. Jak ktoś ma legalną licencję... Ale ja do niczego nie namawiam, to lepiej rozstrzygnąć we własnym sumieniu.
Mam nadzieję, że mimo tego, iż to jest okropny TL;DR to jednak komuś się to przydało i ktoś z tego korzystał. A teraz obiecane linki o obrazek który podsumowuje w sumie ten cały post i jest bardziej czytelny. Do zobaczenia następnym razem!
Cert Updater 1.6: https://mega.nz/folder/pU4gzThS#j1FwMQz ... e/odwXyCKQ
(Chmura nie moja, za nią należą się gratulację użytkownikowi Matlaw)
Aktywacja telefoniczna przez Internet: https://microsoft.gointeract.io/interac ... ken=0Yr8Nd
Z uszanowaniem!