()

Dziś już trzeci w serii artykuł o kryptografii. Nie jest to mój konik, ale jest bardzo ważną częścią bezpieczeństwa i nawet jeśli nie jest to także Twój ulubiony temat, to musisz co nieco o nim wiedzieć. W bezpieczeństwie jak i w zdrowiu trzeba mieć holistyczne podejście.

Wstęp

Nie mówię, że specjaliści nie są potrzebni, wręcz przeciwnie. Na przykład – kto wymyślił algorytmy, o których przeczytasz zaraz w poniższym akapicie? Właśnie oni, ci specjaliści.

Ale jeśli chcesz zabezpieczać firmę, a nie tworzyć rozwiązania bezpieczeństwa, to będzie Ci ciężko, jeśli będziesz się specjalizował tylko i wyłącznie w jednej wąskiej działce. Dlatego ja mam takie podejście: wybierz to, co lubisz najbardziej, na tym się skup i wiedz na ten temat więcej niż wszyscy inni, ale miej wiedzę o innych tematach przynajmniej na poziomie podstawowym.

Jeśli chcesz pracować w defensywie albo jako info sec, to będzie to najlepsze moim zdaniem. Ponieważ przy obronie zamku samo tylko załatanie murów nie pozwoli Ci się wiecznie bronić. W końcu ktoś się po nich wespnie, zamiast je niszczyć ;). Dlatego defensywa to taka trudna działka.

Algorytmy haszowania

Wiesz już, czym jest haszowanie – poznąłeś to tutaj. Dziś wymienię Ci kilka algorytmów to haszowania i na koniec powiem, który lepiej wybrać.

  • MD (Message Digest) Stworzony przez Rona Rivesta. Chyba najbardziej znana jest MD5, która generuje 128-bitową wartość. Jest więcej wersji tego algorytmu takich, jak MD i MD4
  • LANMAN LM hash to stary algorytm wykorzystywany przez systemy Microsoft. Mogłeś go spotkać w bardzo starych wersjach systemów od MS w latach 1987 do 1994. Służył do szyfrowania i przechowywania hasła. Hasło było szyfrowane DES.
  • NTLM (NT Lan Manager) Począwszy od Windows NT był on lepszą metodą do przechowywania hasła w rejestrze. Tu do szyfrowania wykorzystywany był MD4 zamiast DES. W wypadku wersji drugiej NTLM wykorzystywany był już HMAC-MD5 do haszowania i wysłania challenge oraz odpowiedzi z klienta do serwera i z powrotem.
  • RIPEMD (Race Integrity Primitives Evaluation Message Digest) ma wiele wersji: od 128 przez 160, 250 do 320 bitów
  • HMAC (Hash-based Message Authentication Code) W wypadku HMAC potrzebny jest klucz, który zostanie wpleciony do algorytmu, by obliczyć MAC i wtedy MAC jest wynikiem haszowania.
  • SHA (Secure Hash Algorithm) Został stworzony przez National Security Agency. Ma on różne wersje, od SHA-0 przez SHA-1, SHA-2 po SHA-3. Przez dłuższy czas bardzo popularny był SHA-1.
  • SHA-256 i SHA-512 To nowsze wersje tego algorytmu generujące 256 i 512-bitową wartość hasza.

Aktualnie do haszowania powinieneś wybierać SHA-3. W 2013 roku SHA-3 opublikowano w FIPS 202. SHA-3 zawiera cztery funkcje skrótu o stałym rozmiarze, SHA3-224, SHA3-256, SHA3-384, SHA3-512, oraz dwie rozszerzalne funkcje skrótu wyjściowego SHAKE128 i SHAKE256, które osiągają poziom bezpieczeństwa od 128-bitowego do 256-bitowego, jeśli dane wyjściowe są wystarczająco długie.

Szyfrowanie danych

Jeśli chcemy zachować poufność czy to naszych danych, czy też danych firmowych, musimy wziąć pod uwagę ich zaszyfrowanie. Poniżej opiszę Ci parę pojęć, z którymi na pewno się spotkasz podczas pracy w bezpieczeństwie, gdy będzie mowa o szyfrowaniu.

  • Data at rest jest to pojęcie, w którym musimy zaszyfrować dane w spoczynku, czyli takie, które są na dysku i w danym momencie nie są wykorzystywane przez nas czy też przez inne systemy. Dane te mogą również być przechowywane w bazach danych. Dane w spoczynku powinny być zabezpieczone w taki sposób, aby nikt niepowołany nie mógł się do nich dostać. Przykładem może być szyfrowanie Bitlockerem w Windows.
  • Data in transit tym pojęciem posługujemy się, jeśli chodzi o przesyłanie danych po sieci. Musimy również wykorzystywać szyfrowanie podczas przesyłania danych, by nie natknąć się na MITM attack. Przykładem zastosowania może być użycie SSH.
  • Data in use jest to szyfrowanie danych wtedy, gdy są w użyciu, na przykład przez RAM czy CPU cache.
  • Full disc FDE, czyli full dysk encryption wspierane jest przez wszystkie najnowsze systemy. Pozwala on na zaszyfrowanie całego dysku wraz z systemem operacyjnym.

Pojęcie Security through obscurity

Jest to zasada bezpieczeństwa, w której to robisz projekt bądź implementację tak skomplikowaną, by pozostała bezpieczna. Dla przykładu robisz dokumentację jakiegoś projektu tak skomplikowaną i niezrozumiałą dla innych, że pozostaje bezpieczna, bo tylko Ty możesz odszyfrować, co tam zapisałeś.

Pamiętaj, by to nie była Twoja jedyna ścieżka obrony. Ale kolejnym przykładem może być zmiana nazw komend w programie na niepasujące do niczego, co utrudni złamanie danej aplikacji.

Protokoły bezpiecznej komunikacji HTTPS / SSL/TLS / S/MIME / SRTP / LDAPS

Ostatnio znajomy sprawdzał na rozmowie o pracę do działu bezpieczeństwa wiedzę studenta (studiującego cyberbezpieczeństwo), który nie znal różnicy miedzy HTTP i HTTPS. Powiedział on, że chodzi o zieloną kłódkę. Chciałbym pomóc w tym temacie i poniżej wymienię parę z protokołów bezpiecznej komunikacji i wyjaśnię, o co w nich chodzi.

  • HTTPS (HTTP secure) wykorzystuje SSL do szyfrowania komunikacji między klientem a serwerem. W dzisiejszych czasach i przy dzisiejszych prędkościach internetu nie wyobrażam sobie powodu, aby korzystać ze zwykłego HTTP. Zawsze wybieraj HTTPS, a zwłaszcza koniecznie w wypadku stron do logowania, by hasło nie zostało przejęte przy MITM.
  • SSL/TLS (Secure Sockets Layer/Transport Layer security) SSL to stary protokół do szyfrowania ruchu sieciowego i maili. Zastąpił go nowszy i bezpieczniejszy TLS. SSL/TLS możesz na przykład zabezpieczyć komunikację między dwoma serwerami pocztowymi wewnątrz organizacji bądź z zewnętrznym dostawcą.
  • S/MIME (Secure MIME) służy do zaszyfrowania maila.
  • SRTP (Secure Real-Time Transport Protocol) Jest to protokół szyfrujący i uwierzytelniający dla komunikacji głosową jak i wideo. Na przykład Skype for Business wykorzystywał RTP.
  • LDAPS (Lightweight Directory Access Protocol over SSL) Jest to szyfrowana wersja LDAP-a, która szyfruje całą komunikację między klientem a serwerem katalogowym.

Protokoły bezpiecznej komunikacji DNSSEC / IPSec / SSH / FTPS / SFTP

  • DNSSEC (Domain Name System Security Extensions) DNSSEC nie szyfruje komunikacji do serwera DNS. Dodaje za to integralność do zapisów DNS, by klient wiedział, kiedy zapisy DNS zostały podmienione przez jakąś nieautoryzowaną osobę. Robi to przez dodanie sygnatury, w której jest hasz. Możesz sobie zweryfikować, czy hasz jest poprawny, czy też nie.
  • IPSec (Internet Protocol Security) Został stworzony, by zabezpieczać cały ruch IP nie patrząc, jaka aplikacja tworzy ten ruch. Mamy tu dwa tryby: transport i tunel. W wypadku trybu transport tylko dane wewnątrz pakietu są szyfrowane. Jeśli zaś chodzi o tryb tunelu, wtedy mamy zaszyfrowany header jak i same dane wewnątrz pakietu. IPSec wykorzystuje różne protokoły do różnych serwisów kryptograficznych. AH (Authentication header) odpowiada za uwierzytelnianie wysyłającego z IPSec, ESP (Encapsulating Security Payload) odpowiada za szyfrowanie.
  • SSH (Secure Shell) Zastępca Telnetu wykorzystujący uwierzytelnianie i szyfrowanie.
  • FTPS (FTP Secure) wykorzystuje SSL/TLS, by zaszyfrować komunikację.
  • SFTP (Secure FTP) wielu osobom myli się z FTPS. Jest on rozwinięciem do SSH pozwalającym na bezpieczne zarządzanie przesyłanymi danymi przez SSH.

Protokoły bezpiecznej komunikacji SNMPv3 / Secure POP / IMAP / SCP

  • SNMPv3 (Simple Network Managment Protocol version 3) Powinieneś wykorzystywać właśnie tę wersję, ponieważ korzysta ona z szyfrowania komunikacji jak i uwierzytelniania. SNMP wykorzystywany jest do monitorowania i zarządzania urządzeniami sieciowymi w sieci ;).
  • Secure POP /IMAP (Secure Post Office / Internet Message Access Protocol) oba wykorzystują SSL/TLS do zaszyfrowania wiadomości, ale ja bym zawsze wybierał secure IMAP, ponieważ mam tu zarządzanie folderami, co jest wygodą 😉
  • SCP (Secure Copy Protocol) Tak samo jak SFTP działa nad SSH i służy do szyfrowania łącza, po którym jest przesyłany plik.

Pewnie już wiesz, do czego służy VPN. Ale wspomnę jeszcze raz

Pewnie już wiesz, do czego służy VPN. Ale wspomnę jeszcze raz, że do tunelowania. Poniżej opiszę Ci też parę protokołów wykorzystywanych to tego tunelowania.

  • PPTP (Point to point Tunneling Protocol) Stary protokół, często wykorzystywany był w Microsoft. Służy do szyfrowania ruchu PPP (point to point). Wykorzystuje GRE (Generic Routing Encapsulation) do transportowania pakietów PPP, ale MPPE (Microsoft Point to point Encryption) do szyfrowania ruchu. Działa on na porcie 1723 TCP.
  • L2TP ( Layer 2 Tunneling Protocol) Nowszy protokół. Wykorzystuje IPSec zamiast MPPE, by zaszyfrować ruch. Wymiana klucza jest na porcie 500 UDP. Dla IPSec Nat port to 5500 UDP i 1701 UDP.
  • SSTP (Secure Sockets Transport Protocol) Korzysta z SSL, by szyfrować ruch. Plusem tego jest mniejsza konfiguracja na serwerze. Port 443.
  • OpenVPN Jest to protokół typu open source, który jest bardzo konfigurowalny. Dostępny bezpłatnie dla wszystkich platform. Jeden z najszybszych protokołów, jego szybkość zależy od poziomu szyfrowania. Można go łatwo skonfigurować tak, by wydawał się zwykłym ruchem internetowym, co zmniejsza ryzyko wykrycia go przez zapory sieciowe.
  • IKEv2 (Internet Key Exchange Version 2) Jest to protokół tunelowania oparty na protokole IPsec. Został opracowany przez Microsoft i Cisco.

Jaki z nich wybrać? Prędkość, bezpieczeństwo i niezawodność to OpenVPN lub IKEv2. Dlatego też OpenVPN wybierz na laptopa i peceta, a IKEv2 na mobilne urządzenia.

Pretty Good Privacy – PGP

Pretty Good Privacy To narzędzie służące już od wielu lat do szyfrowania informacji asymetrycznie. PGP pozwala ci na wygenerowanie klucza i podzielenie się nim poprzez maila. Pozwala na szyfrowanie poczty elektronicznej, plików, katalogów oraz partycji dyskowych.

Stegonography to bardzo fajne kryptograficzne pojęcie

To bardzo fajne kryptograficzne pojęcie, które wiele razy już było wykorzystywane np. na 4chan. Polega ono na ukryciu wiadomości w obrazie. Jest wiele programów, które możesz wykorzystać do stegonografii. Ja niestety nie miałem jeszcze okazji powymieniać się z nikim informacjami w ten sposób. Jeśli też nie masz z kim, to zapraszam, potrenujemy ;).

Podsumowanie

Dziś poznałeś masę terminów i skrótów. Mam nadzieję, że nie było tego za dużo. Sam już pisząc to zastanawiałem się, czy nie podzielić tego na dwa krótkie artykuły. Napisz mi, jak wolisz – jeden taki duży z masą terminów, które musisz przyswoić i zrozumieć, czy taki jak ten na pół. Chcę, byś w jak najprzystępniejszy sposób się tego nauczył.

Pozdrawiam – Pusz ????

Jak przydatny był ten Artykuł

Kliknij gwiazdke by zagłosować

Średni / 5. Liczba głosów

Doceń naszą prace

Przepraszam że ten post nie był dla Ciebie przydatny

Popraw ten post!

Napisz mi co mogę poprawić