Przejdź do głównej zawartości

Czy warto korzystać z SSL?

SSL – Secure Socket Layer to protokół działający w architekturze klient-serwer i umożliwiający nawiązanie bezpiecznego połączenia z wykorzystaniem certyfikatów. Głównie uwierzytelniane są serwery, jednak nic nie stoi na przeszkodzie, by uwierzytelniać klienta. SSL nie jest żadnym algorytmem szyfrowania. To zestaw standardowych algorytmów i schematów używanych do zapewnienia bezpieczeństwa. Wykorzystuje on algorytmy symetryczne - klucze: szyfrujący oraz deszyfrujący są identyczne - oraz asymetryczne (z kluczem publicznym) – klucz szyfrujący różni się od klucza deszyfrującego, a wyznaczenie drugiego z pierwszego nie jest proste. Klucz szyfrujący jest publicznie znany, a klucz deszyfrujący jest niejawny (klucz prywatny).

O bezpieczeństwie danych w sieci Internet myślało już od początku jej istnienia. W roku 1994 firma Netscape opracowała SSL. Rok później istniała już trzecia wersja SSL. W roku 1996 IETF - Internet Engineering Task Force powołało grupę roboczą TLS - Transport Layer Security. Zadaniem tej grupy było rozwijanie protokołu SSL. W 1999 roku opracowany został standard TLS 1.0 zwany także SSL 3.1. Stany Zjednoczone prowadziły politykę ograniczeń w eksporcie technologii kryptologicznych. Znaczna większość implementacji SSL nie mogła wykorzystywać kluczy symetrycznych dłuższych niż 40 bitów, co dawało rządowym agencjom bezpieczeństwa możliwość złamania szyfrowania przy pomocy ataków typu brute-force. Do takich ataków potrzebna była jednak znaczna moc obliczeniowa. Po kilku latach debat publicznych oraz wielu sprawach sądowych rząd USA złagodził swoje stanowisko co do stosowania większych kluczy. Dziś używa się kluczy nie mniej niż 128 bitowych, a i one powoli wychodzą z użycia (zaleca się używanie 256 bitów).

W roku 2009 odkryto w SSL podatność na ataki w procesie renegocjacji sesji (na przykład po jej przerwaniu). Błąd umożliwiał wysyłanie danych do serwera przed użytkownikiem bez jego wiedzy (atak typu „Man in the middle”). Ponieważ podatność dotyczyła protokołu, a zatem wszystkich implementacji, jedyną metodą obejścia błędu okazało się wyłączenie możliwości renegocjacji sesji w ogóle. Równocześnie zaproponowano poprawkę do specyfikacji w postaci rozszerzenia.

Gdzie można uzyskać certyfikat?
Jest wiele miejsc, w których można pozyskać odpowiedni certyfikat dla serwera, którym zarządzamy. Miejsca te nazywane są centrami (urzędami) certyfikacji (CA - Certificate Authorities). Aby uzyskać certyfikat należy zgłosić się do jednego z CA, wykupić usługę wygenerowania certyfikatu, a następnie przesłać do CA odpowiednie dane serwera. Ceny takich usług zależne są od stopnia szyfrowania, długości klucza i ewentualnego odszkodowania w przypadku złamania szyfru przez hakerów. Przykładem CA może być Comodo – firma znana także z oprogramowania zabezpieczającego komputery.
Jednak dostarczenie odpowiednich danych do CA nie jest proste. Jest to zazwyczaj kilka komend do wykonania po stronie serwera.

By rozwiązać ten problem, eliminując konieczność ręcznej walidacji danych i w 2016 roku, zostało powołane do życia CA Let’s Encrypt. Jest to darmowe centrum certyfikacji zainicjowane przez ISRG - Internet Security Research Group – organizację pożytku publicznego zorientowaną na bezpieczeństwo w Internecie. Let’s Encrypt utrzymywane jest dzięki sponsorom (jak Electronic Frontier Foundation – organizacja pozarządowa założna w USA w 1990 roku, walcząca o swobody obywatelskie, czy Mozilla – wydawca przeglądarki Firefox albo Cisco Systems – producenta sprzętu sieciowego). Let’s Encrypt umożliwia pobranie oprogramowania, które w kilku prostych krokach może zostać zainstalowane na serwerze i za pomocą którego będzie można wygenerować, pobrać oraz zainstalować odpowiedni certyfikat na serwerze. Dodatkowo program potrafi dodać wpisy konfiguracyjne do popularnych serwerów www jak Apache czy nginx. Drugą ważną funkcją aplikacji jest możliwość automatycznego odnawiania certyfikatu, dzięki czemu zawsze będziemy mieć na serwerze aktualny.

Ile to kosztuje?
Ceny certyfikatów uzależnione są od przede wszystkim od rodzaju, czyli stopnia skomplikowania (długości w bitach), ewentualnego odszkodowania oraz czy ma być to certyfikat dla konkretnego serwera, czy dla całej domeny. Różne są także ceny w różnych CA – najtańsze i najprostsze certyfikaty można mieć już od 0,00 zł/rok (zazwyczaj przy wykupieniu domeny), a ceny mogą dochodzić do kilku tysięcy złotych za rok. Certyfikaty trzeba odnawiać i zawsze zapewnić im aktualność. Dzięki temu użytkownicy będą mieć pewność, że łączą się z odpowiednim serwerem (połączenia szyfrowane stosuje coraz więcej instytucji – wszystkie banki, sklepy internetowe itp.).

Aby poprawić bezpieczeństwo w Sieci powołano wspomniane Let’s Encrypt. To centrum certyfikacji oferuje darmowe certyfikaty SSL, które wdrożyć może nawet niedoświadczony użytkownik Internetu. Wystarczy pobrać odpowiednie oprogramowanie (Certbot) i wykonywać polecenia krok po kroku (na przykład wpisać nazwę domeny). Skrypty konfiguracyjne dla serwera www zostaną dodane automatycznie.

Jakie są minimalne wymagania systemowe Certbota i jak go uruchomić?
System, który chcemy zabezpieczyć, powinien być oparty na systemach z rodzin Unix/Linux. Certbot nie działa natywnie z systemami z rodziny Microsoft Windows. Jest jednak możliwość jego uruchomiania przez doświadczonych administratorów (szczegóły znajdują się na blogu Let’s Encrypt).

Po wejściu na stronę Let’s Encrypt należy pobrać wersję dla naszego systemu oraz używanego serwera www. Po wgraniu i uruchomieniu aplikacja prowadzi już krok po kroku, praktycznie nie ma możliwości popełnienia błędu. Każdy z serwerów www różni się w konfiguracji – programiści aplikacji zadbali o to. Program uruchamiany musi być z uprawnianiami administratora, dzięki czemu może utworzyć odpowiednie katalogi systemowe, zmienić konfiguracje serwera www, załadować nowe pliki konfiguracyjne i uruchomić ponownie odpowiednie usługi. Jednym z wpisów jest automatyczne przekierowywanie ruchu www z http:// na https:// - litera „s” zapewnia nas o połączeniu szyfrowanym. Najłatwiej sprawdzić to wchodząc na naszą stronę www. Adres w przeglądarce powinien się zmienić, a przy pasku adresowym powinna pojawić się ikona zielonej kłódki. Po jej kliknięciu wyświetlone zostaną informacje o naszym serwerze, wystawcy certyfikatu oraz dacie jego ważności.

Dlaczego warto?
Instalacja aplikacji Certbot oraz konfiguracja serwera www zajmują około 10 minut. W zamian za poświęcony czas, nasi użytkownicy otrzymają zapewnienie, że dane przez nich otrzymywane są danymi wysłanymi przez nasz serwer. To znacznie zwiększa nie tylko bezpieczeństwo użytkowników, ale także zaufanie do nas – nie tylko do serwera jako takiego, ale firmy, która dba o dane użytkowników. Każdy właściciel firmy, każdy administrator powinien się zastanowić czy warto poświęcić 10 minut dla obopólnej korzyści administratorów i użytkowników oraz poprawy naszego bezpieczeństwa w sieci.


Komentarze

Popularne posty z tego bloga

Praca na uczelni ma wiele zalet.

Jest coś szczególnego w pracy adminów na uczelniach. W przeciwieństwie do firm gdzie pracowałem – zarówno korporacji jak i małych czy średnich przedsiębiorstw tutaj nie ma pośpiechu. No, zazwyczaj go nie ma. W większości przypadków moja praca wygląda w ten sposób, że robię listę zadań do wykonania, następnie staram się wymyślić jak coś zrobić i jeśli spełnia kryteria to robię to. Plan pracy na tydzień jest dla mnie ważnym elementem. Harmonogram pozwala mi przewidzieć ile czasu potrzebuję na każde zagadnienie. Najwięcej dzieje się w poniedziałki. Sprawdzam po weekendzie czy wszystko działa jak należy, czy nic się przez te dwa dni nie wyłożyło, czy nie trzeba czegoś pilnie poprawić. Z każdym kolejnym dniem zadań jest coraz mniej. Piątki staram się przeznaczać na rozwój – czytam artykuły, książki, a niedługo pewnie wrócę do szkoleń online. Stereotyp mówi, że admin to człowiek oglądający przez cały dzień śmieszne koty w Internecie. Jak w każdej legendzie i tutaj jest ziarno prawdy. Na ucz...

Wirtualizacja - czym jest i po co nam w ogóle?

Dawno, dawno temu... Dawno temu zasady były proste - jeden komputer to jeden system operacyjny. Co prawda już w latach 60-tych XX w. pojawiały się próby wirtualizacji czyli maksymalnego wykorzystania przez oprogramowanie systemowe jednak o pełnej wirtualizacji możemy mówić  dopiero od połowy poprzedniej dekady XXI w. Wcześniej by budować maszyny wirtualne potrzebne były olbrzymie komputery, a same maszyny zazwyczaj były kopiami bazowego systemu operacyjnego, co zwiększało wykorzystanie procesora. Wraz z osiągnięciem odpowiedniej mocy obliczeniowej przez komputery osobiste oraz serwery należące do firm czy instytucji publicznych prace nad wirtualizacją przyspieszyły. Dzięki staraniom producentów oprogramowania możemy dziś dzielić nie tylko zasoby procesora (CPU) lecz także pamięci swobodnego dostępu (RAM) czy zasobów dyskowych (HDD/SSHD/SSD). Większość oprogramowania, które dostępne jest dla profesjonalistów możemy zainstalować w domu, na naszych komputerach stacjonarnych czy l...

Czasem nie warto ufać dokumentacji...

Zadania w pracy są różne. Mnie przyszło dziś uruchomić na jednym z serwerów aplikację Redmine. Jest to program webowy, w wersji do samodzielnego utrzymania. Służy do sprawnego zarządzania projektami. Mamy tutaj do dyspozycji takie elementy jak wykres Grantta, kalendarze czy wiki. Zanim przystąpiłem do pracy zajrzałem do dokumentacji. Najpierw trzeba przeczytać, sprawdzić co i jak należy wykonać. Oficjalna dokumentacja wydawała się być czytelna, prosta. Po dwukrotnym przeczytaniu przystąpiłem do instalacji. Krok po kroku postępując zgodnie z informacjami w dokumencie. Już po chwili napotkałem pierwsze problemy. Najpierw brak odpowiednich środowisk, następnie komponentów, potem konkretnych wersji komponentów. Zaczęło się poszukiwanie w sieci. Patrzenie na fora, sprawdzanie jak inni rozwiązali problemy, które teraz napotkałem ja. Brnąłem przez kolejne strony w Internecie, kolejne zmiany, instalowane elementy. Cały dzień w ogniu walki. Zrezygnowany, po prawie ośmiu godzinach pracy szuka...