Zarządzanie systemami informatycznymi Bezpieczeństwo przesyłu danych
Bezpieczeństwo przesyłu danych Podstawy szyfrowania Szyfrowanie z kluczem prywatnym Szyfrowanie z kluczem publicznym Bezpieczeństwo serwerów WWW Uwierzytelnianie użytkowników Szyfrowanie haseł Podstawowa metoda uwierzytelniania Bezpieczeństwo transakcji Protokół SSL Szyfrowanie GnuPG
Zagrożenia bezpieczeństwa witryny - zasady bezpieczeństwa Ujawnienie informacji poufnych usuwanie zbędnych usług serwera uwierzytelnianie szyfrowanie Utrata lub zniszczenie danych przechowywanie kopii zapasowych stosowanie macierzy RAID Modyfikacja danych Stosowanie systemu uprawnień dostępu do plików i szyfrowania Wyliczanie sum kontrolnych danych Blokada usługi (Atak DoS Denial of Service) Ataki w postaci odwrotnego spammingu lub symulacji dużego ruchu w sieci Monitorowanie przesyłu danych z poszczególnych komputerów Błędy w oprogramowaniu - aktualizacja Zaprzeczenie korzystania z usługi Szyfrowane transakcje bez możliwości dokonywania zmian w wymienianych wiadomościach
Podstawy szyfrowania Algorytm szyfrujący to działanie matematyczne przekształcające informację w pozornie losowy ciąg danych. Szyfrowanie jednostronne, w celu sprawdzenia, czy podane hasło dostępu jest prawidłowe wystarczy zaszyfrować podane hasło i porównać wynik z zaszyfrowanym hasłem oryginalnym na serwerze Otwarty Tekst: haslo Algorytm szyfrujący Tekst Zaszyfrowany: p7rf09v9ndyde
Szyfrowanie z kluczem prywatnym Założeniem szyfrowania z kluczem prywatnym jest udostępnianie zaufanym użytkownikom klucza szyfrowania. Klucz ten musi być utajniony. Najbardziej rozpowszechnionym algorytmem szyfrowania z kluczem prywatnym jest algorytm DES (ang. Data Encryption standard) opracowany przez IBM. Ze względu na moc obliczeniową komputerów mogących odszyfrować przesyłane dane obecnie algorytm DES został uznany za przestarzały jest zastąpiony przez potrójny algorytm DES. klucz Otwarty Tekst: haslo Algorytm szyfrujący Tekst Zaszyfrowany: p7rf09v9ndyde Algorytm deszyfrujący Otwarty Tekst: haslo
Szyfrowanie z kluczem publicznym Metoda szyfrowania z kluczem publicznym polega na wykorzystaniu dwóch różnych kluczy: publicznego i prywatnego. Klucz publiczny jest używany do zaszyfrowania wiadomości, natomiast klucz prywatny służy do deszyfracji. Najpopularniejszym algorytmem szyfrowania z kluczem publicznym jest opublikowany w roku 1978 algorytm RSA opracowany przez Rivesa, Shamira i Adelmana. Klucz publiczny Klucz prywatny Otwarty Tekst: haslo Algorytm szyfrujący Tekst Zaszyfrowany: p7rf09v9ndyde Algorytm szyfrujący Otwarty Tekst: haslo
Bezpieczne serwery WWW W celu zabezpieczenia połączeń z przeglądarkami internetowymi stosuje się protokół SSL zainstalowany na serwerze Apache lub IIS. Aby stosować protokół SSL należy wygenerować własny certyfikat cyfrowy, użytkownicy będą jednak informowani, że jest to tylko prywatny certyfikat. Aby uzyskać certyfikat w centrum certyfikacji należy wykazać, że nasza firma została zarejestrowana zgodnie z obowiązującym prawem, ma konkretną siedzibę i posiada własną domenę a następnie wygenerować Certificate Signing Request (CSR).
Metody uwierzytelniania Uwierzytelnianie użytkowników przy pomocy skryptów PHP i bazy danych Podstawowa metoda uwierzytelniania na serwerze HTTP przy pomocy PHP Podstawowa metoda uwierzytelniania na serwerze HTTP przy użyciu plików.htaccess
Uwierzytelnianie użytkowników przy pomocy PHP i bazy danych
Przechowywanie haseł w bazie danych
Zmieniony formularz
Szyfrowanie haseł Do szyfrowania haseł stosuje się jednostronnego algorytmu Secure Hash Algorith 1 (SHA-1) Funkcja PHP sha1() jest silną mieszająca jednokierunkowa funkcją szyfrującą. string sha1(string łańcuch [, bool łańcuch_binarny]) Mając dany łańcuch znaków, funkcja zwróci pseudolosowy ciąg 40 znaków. Jeśli parametrowi łańcuch_binarny przypisana zostanie wartość true, zamiast tego łańcucha znaków zwrócony zostanie 20-znakowy łańcuch danych binarnych. Zapytanie uwzględniające szyfrowanie
Podstawowa metoda uwierzytelniania na serwerze HTTP Apache
Podstawowa metoda uwierzytelniania na serwerze Apache przy użyciu plików.htaccess Plik.htaccess chroni folder z plikami w którym się znajduje. Utworzenie pliku z hasłami: htpasswd -bc.htpass uzytkownik haslo
Bezpieczeństwo transakcji internet Serwer WWW Interpreter PHP Serwer MySQL Przechowywane strony i skrypty Pliki z danymi Dane w bazie danych
Bezpieczeństwo transakcji Komputer użytkownika: przeglądarka (poza kontrolą serwera) Internet (poza kontrolą serwera): Secure Socets Layer(SSL) Secure Hypertext Transfer Protocol (S-HTTP) System docelowy (Pod kontrolą serwera)
Protokół Secure Socets Layer(SSL) Protokół SSL został opracowany przez firmę Netscape i jest obsługiwany obecnie przez większość popularnych przeglądarek. Obecnie jest używany SSL 3.0 HTTP Protokół uzgadniania SSL Protokół zmiany specyfikacji szyfru SSL Protokół określania formatu pakietów (SSL Record Protocol) TCP/UDP IP Urządzenia pośredniczące Protokół alarmów SSL Warstwa aplikacji Warstwa SSL Warstwa transportowa Warstwa sieci Warstwa fizyczna
Operacje nawiązania połączenia przeglądarki z serwerem WWW z SSL Przeglądarka nawiązuje połączenie z serwerem wykorzystującym SSL i żąda od niego uwierzytelnienia się. Serwer przesyła swój certyfikat cyfrowy Serwer może zażądać od przeglądarki uwierzytelnienia się. Przeglądarka wysyła listę obsługiwanych przez siebie algorytmów szyfrujących. Serwer wybiera z podanej listy najbezpieczniejszą metodę, którą jest w stanie obsłużyć. Przeglądarka i serwer generują klucze sesji: Przeglądarka odczytuje z certyfikatu cyfrowego serwera jego klucz publiczny i szyfruje nim losowo wybraną liczbę. Serwer wysyła ciąg losowo wybranych danych w formie tekstu otwartego. Na podstawie wymienionych danych generowane są klucze sesji będące wynikiem wykonywania funkcji mieszających.
Przykład połączenia SSL
Przesył danych z wykorzystaniem SSL Dane zostają podzielone na niewielkie pakiety Każdy pakiet może zostać skompresowany Za pomocą algorytmu mieszającego dla każdego pakietu zostaje obliczony kod uwierzytelniajcy (Message Authentication Code-MAC) Skompresowane dane i ich kod uwierzytelniający zostają połączone i zaszyfrowane Zaszyfrowane pakiety wraz z dołączonymi do nich nagłówkami informacji zostają wysłane do sieci
Przesył danych z wykorzystaniem SSL
Konfigurowanie SSL Tworzenie pary kluczy: publicznego i prywatnego Tworzenie wniosku o podpisanie certyfikatu
Konfigurowanie SSL Tworzenie samodzielnie podpisanego certyfikatu Przeniesienie kluczy do folderów aplikacji OpenSSL
Konfiguracja Apache do pracy z SSL Zawartość pliku httpd.conf: Listen 80 Listen 443 <VirtualHost _default_:443> ServerName localhost SSLEngine on SSLCertificateFile /etc/ssl/cert/www.rob.key.cert SSLCertificateKeyFile /etc/ssl/private/www.rob.key </VirtualHost> Domyślny port SSL: 443 Uruchomić apache2ctl start
Szyfrowanie poczty elektronicznej Do szyfrowania korespondencji stosowane są dwa standardy: PGP (Pretty Good Privacy) - wersja komercyjna www.pgpi.org GPG (Gnu Privacy Guard) wersja Open Source www.gnupg.org
GnuPG GnuPG jest udostępnianym na licencji GPL w pełni funkcjonalnym zamiennikiem PGP zgodnym ze standardem OpenPGP. Jest to oprogramowanie stabilne, działające na systemach zgodnych z POSIX (takich jak GNU/Linux i różne odmiany BSD), Mac OS X a nawet MS-Windows. GnuPG jest programem konsolowym, istnieje także wiele nakładek graficznych (takie jak GPA pod GNU/Linux lub WinPT pod Windows). Niektóre programy pocztowe (np. Sylpheed-claws) mają wbudowaną obsługę kluczy GnuPG. Inne wymagają instalacji odpowiedniego pluginu. Enigmail to plugin, dzięki któremu Mozilla Thunderbird może korzystać z GnuPG. Do szyfrowania informacji jest używany klucz publiczny. Odszyfrować wiadomość można tylko za pomocą klucza prywatnego, który powinien być w wyłącznym posiadaniu adresata. Klucz publiczny musi mieć każdy kto chce szyfrować wiadomości dla jego właściciela. Dzięki asymetrii, ujawnienie klucza publicznego jest zupełnie bezpieczne (za pomocą klucza publicznego nie da się wygenerować prywatnego a więc i odszyfrować wiadomości). Nawet nadawca wiadomości nie jest w stanie jej odszyfrować.
GnuPG