Aby zrozumieć, co tak naprawdę zabezpiecza certyfikat SSL zachęcam do zapoznania się z moim poprzednim artykułem, w którym przedstawiłem od strony teoretycznej, jak i praktycznej, jak działa szyfrowanie SSL.
Poniżej ponownie przytaczam mój schemat transmisji szyfrowania danych, ponieważ będę się do niego odwoływał również w tym artykule.
SSL nie chroni Twojego komputera.
Zwróć uwagę, że wszystkie dane wpisywane przez Ciebie w przeglądarce do póki nie zaczną być wysyłane, są cały czas przetwarzane przez przeglądarkę w sposób jawny i nieszyfrowany. Na etapie wprowadzania danych do przeglądarki na komputerze lub urządzeniu mobilnym, certyfikat SSL jeszcze nie działa. Wynikają z tego następujące zagrożenia:
- Możesz mieć za plecami kamerę, która nagrywa Twój ekran i wszystko co wpisujesz na klawiaturze (takie zagrożenie offline ’owe ).
- Taką kamerę, którą mógłbyś mieć za plecami, możesz mieć także zainstalowaną na swoim komputerze w formie oprogramowania szpiegowskiego, które przechwytuje wszystko to, co masz na ekranie i to co wpisujesz na klawiaturze (loggery klawiatury). To jest tylko jeden z przykładów oprogramowania szpiegowskiego, a ich ilość nie jest do końca znana i zależy od wyobraźni programistów o niezbyt czystych intencjach (nazywam ich hackerami)
- Na twoim komputerze mogą być również inne wirusy i trojany przechwytujące Twoje dane niezaszyfrowane na tym etapie.
Z tego też powodu chcę obalić mit, że „SSL zabezpiecza Twój komputer” – TO NIE JEST PRAWDA. Dlatego mimo korzystania z certyfikatów SSL nigdy nie zapominaj o dwóch aspektach związanych z Twoim bezpieczeństwem:
- Używaj wiarygodnego, bezpiecznego oprogramowania, od zaufanych i najlepiej zweryfikowanych przez Ciebie dostawców / producentów.
- Używaj oprogramowania antywirusowego najlepiej wysokiej jakości. Nie zalecam darmowego oprogramowania, ja osobiście do takiego nie mam zaufania. Możesz przyjąć założenie, że nie używasz komputera, na którym nie ma oprogramowania antywirusowego.
SSL to tylko transmisja przez nieznany obcy Internet.
Szyfrowanie jak wspomniałem w poprzednim artykule rozpoczyna się w momencie przygotowania danych do wysyłki i dopiero wtedy SSL zabezpiecza całą transmisję przez Internet. Ten jeden mały fragment naszego schematu jest bardzo istotny i nie należy ujmować mu wartości pod względem bezpieczeństwa. Na tym poziomie, czyli na etapie transmisji przez Internet szyfrowanie SSL działa świetnie. Sposób działania szyfrowania SSL, można by rzec, że wręcz genialny, a ktoś kto go wymyślił zrobił kawał dobrej roboty w poprzednim artykule zerknij na akapit związany z wymianą kluczy SSL.
Jednak sama transmisja to przecież nie wszystko co należy zabezpieczyć, to tylko wierzchołek góry lodowej, a nawet ten drugi wierzchołek, niewidoczny, który znajduje się pod wodą.
I w tym miejscu chciałbym obalić drugi mit, który brzmi „certyfikat SSL zabezpiecza całą komunikację między użytkownikiem, a serwerem” – TO NIE JEST PRAWDA o czym wspomniałem już w poprzednich akapitach. Teraz więc opowiem Ci, co się dzieje z Twoimi danymi, które trafiają do serwera.
SSL nie chroni bazy danych na serwerze.
Twoje zaszyfrowane dane, które dotarły do serwera są dla niego samego (dla aplikacji tam uruchomionej) niezrozumiałe, wiec serwer musi je odszyfrować. Odszyfrowane dane nadal są przetwarzane przez aplikacje serwerową (np. sklep e-commerce, systemy CMS, CRM, ERP, system bankowy). Aplikacja ta przez cały czas operuje na już nie zaszyfrowanych danych, część z tych danych, a może nawet wszystko co przekazałeś zapisuje w bazie danych. Baza danych przechowuje Twoje dane również w formie niezaszyfrowanych najczęściej jako czysty tekst i surowe pliki i zdjęcia, które przesłałeś. Na poziomie aplikacji i na poziomie bazy danych SSL nie działa bo nie do tego został stworzony! Wynikają z tego następujące zagrożenia:
- Niezabezpieczone oprogramowanie serwera może dawać furtkę osobom nieupoważnionym do przechwytywania tych danych po stronie serwera.
- Wirusy oraz ataki typu injection, mogą modyfikować kod aplikacji i również przekazywać dane do osób nieupoważnionych. Przykładem takiego niezabezpieczonego oprogramowania, na którego są częste ataki jest WordPress.
- Zabezpieczenia na poziomie infrastruktury serwera np. hasła do serwera mogą zostać złamane w wyniku czego nieupoważnione osoby mogą mieć dostęp do całej bazy danych aplikacji (w taki sposób wyciekły dane z aplikacji Play Station Network)
- Sabotaż lub nieetyczne postępowanie z Twoimi danymi przez pracowników firmy, w której znajduje się Twój serwer też jest zagrożeniem, którego nie można pominąć , a przed którym szyfrowanie SSL w ogóle nie zabezpiecza.
Mam nadzieję, że przekonałem Cię, że kolejne stwierdzenie „Certyfikat SSL zabezpiecza serwer” NIE JEST PRAWDĄ.
Aby zminimalizować ryzyko wynikające z powyższych zagrożeń mam dla Ciebie kilka podpowiedzi.
Jeżeli jesteś użytkownikiem Internetu to:
- Korzystaj tylko ze zweryfikowanych portali internetowych, którym ufasz i którym bez obawy mógłbyś powierzyć swoje dane osobowe.
- Sprawdzaj typ certyfikatu SSL. Kliknij w kłódkę przy adresie URL i sprawdź, czy ma weryfikację co najmniej Organization Validation (OV) i czy został wystawiony przez znane i zaufane centrum weryfikacji SSL (np. Certum ZETO). Nie ufaj sklepom ani instytucjom bankowym, które nie maja zweryfikowanego certyfikatu SSL.
- Sprawdzaj kilkukrotnie czy w adresie URL w górnej części przeglądarki nie ma literówki w adresie, bo jest to najczęstszy przypadek podszywania się pod portale internetowe np. banki. Zwróć uwagę czym różni się adres: www.mbank.pl od www.mbamk.pl. Na szybko twój wzrok nie rozpozna, że literka ‘N’ została zamieniona na literkę ‘M’ i w ten sposób możesz podać swoje dane logowania nie na tej stronie co trzeba. Jesli chcesz wiedzieć więcej to poczytaj w Google o tzw. Phishing’u – jak ja to nazywam łowieniem nieostrożnych użytkowników.
A jeżeli jesteś właścicielem serwisu internetowego lub aplikacji WEB, to również dla Ciebie mam kilka podpowiedzi:
- Korzystaj tylko z wiarygodnych i zweryfikowanych firm hostingowych, które mają nieskalaną historię bezpieczeństwa i profesjonalne podejście do bezpieczeństwa danych. Mam niebezpodstawne podejrzenia, że im większa firma hostingowa, tym bardziej narażona jest na ataki hakerskie,
- Jeżeli samodzielnie instalujesz oprogramowanie na serwerze (stronę WWW, system CMS, e-commerce, CRM, ERP) zadbaj o jego bezpieczeństwo i unikaj oprogramowania znanego z częstych włamań i ataków wirusów. Mam przede wszystkim na myśli system WordPress, który wg mnie jest jednym z najniebezpieczniejszych i najbardziej zagrożonych na ataki wirusów Open Source’owym systemem CMS. Więcej na ten temat napisze w najbliższym czasie w artykule o zabezpieczeniach stron i zabezpieczeniach webowych.
- Unikaj hostowania na jednym serwerze wielu aplikacji i stron internetowych jeżeli jedna z tych aplikacji przetwarza bardzo wrażliwe dane firmowe, a inna z tych aplikacji ma obniżony poziom bezpieczeństwa. W takiej sytuacji taką aplikacjin o obniżonym poziomie bezpieczeństwa warto przenieść na inny serwer. Np. na serwerze z Twoim systemem CRM/ ERP nie zalecam hostować stron internetowych opartych o gotowe Open Sourc’owe zabezpieczenia.
- Jeżeli korzystasz z usług SAAS, w których nie masz wpływu na oprogramowanie (np. Zoom, Google, Asana, Jira, Kanban, Trello, …) to weryfikuj usługodawcę oraz sprawdzaj jego historię. Zgodnie z nowymi przepisami RODO powinieneś z takim usługodawcą podpisać umowę powierzenia danych osobowych, w których on jest „procesorem” w rozumieniu RODO. Taki usługodawca powinien też mieć wdrożoną politykę bezpieczeństwa zgodną z RODO.
Zatem czy należy stosować certyfikat SSL?
Oczywiście, że tak, w końcu on zabezpiecza transmisje przez Internet. Moim celem było wykazanie przede wszystkim ze SSL nie jest od „wszystkiego”, oraz aby nie znieczulać użytkowników Internetu na niebezpieczeństwo tylko z tego powodu, że jest stosowany SSL. Gorąco też zachęcam, aby stosować certyfikat SSL na witrynach internetowych, zwłaszcza tam gdzie przesyłane są dane klientów.
I tu dochodzimy jeszcze do jednego nurtującego mnie pytania…
… czy jest sens używać SSL na zwykłych firmowych stronach www.
No właśnie skoro certyfikat SSL służy do szyfrowania przesyłanych przez użytkownika danych z przeglądarki do serwera to jeżeli my posiadamy zwykłą stronę wyświetlającą nasza ofertę to po co nam takie szyfrowanie? Znaczna większość stron firmowych nie ma nic wspólnego z przesyłaniem danych osobowych, a jedyną namiastką tego może być formularz kontaktowy, który albo nie jest zbyt chętnie używany przez klientów, albo w ogóle nie posiada wrażliwych danych osobowych, więc po co go szyfrować? Zwykle takie strony internetowe nie zapisują tych danych w bazie, tylko przesyłają te dane na adres e-mail właściciela. Brak danych osobowych na stronie WWW to kolejny powód, dla którego takie strony nie są wartościowym celem ataków przez kogokolwiek. Skoro chcemy chwalić się nasza ofertą na stronie WWW i chcemy, aby jak najwięcej osób ją widziało, to po co tą ofertę szyfrować certyfikatem SSL, który i tak odszyfrowuje te dane u każdego użytkownika? Najgorszym zagrożeniem jest to, że jakiś haker z dowolnego miejsca na świecie będzie mógł zapoznać się z Twoja ofertą. Mówiąc żartobliwie - nie utrudniaj mu tego 😉
Moja opinia jest taka, że cyfrowanie SSL jest świetnym zabezpieczeniem, ale stosowanie go do stron WWW wyświetlających tylko ofertę jest mocną przesadą, przerostem formy nad treścią i niepotrzebnym zużyciem prądu przez serwery na potrzebę szyfrowania.
Z tego też powodu nie rozumie decyzji firmy Google, która w 2018 roku ogłosiła, że w wynikach wyszukiwania będzie faworyzować strony z szyfrowaniem SSL. Gdyby to dotyczyło tylko sklepów internetowych i aplikacji internetowych sprawa była by dla mnie zrozumiała i jak najbardziej oczywista. Jednak połowa stron internetowych to są zwykle strony firmowe będące wizytówką firmy, które nie przetwarzają żadnych danych. Od momentu ogłoszenia tego przez Google w Internecie zrobił się ogromny szum wokół SSL, często przeradzający się w panikę. Ilość pseudo teorii oraz przecenianie możliwości SSL w publikacjach internetowych przerosło ilość prawdziwych i rzetelnych informacji na temat SSL.
Biorąc pod uwagę powyższe informacje tj. bezpieczeństwo w sklepach www oraz wymagania Google, należy przyjąć odgórną zasadę, że należy stosować SSL przede wszystkim w komercyjnych witrynach internetowych mimo, że uważam że w wielu sytuacjach jest to po prostu niepotrzebne.