()

Już co nieco wiesz o uwierzytelnianiu, ale to obszerny temat, jak zresztą wszystkie w IT czy w bezpieczeństwie. Im głębiej wejdziesz w temat, tym to się rozczłonkowuje na więcej tematów i znowu się musisz czegoś nowego nauczyć.

Dlatego moim zdaniem działka IT i bezpieczeństwo są takimi intratnymi pozycjami na rynku. To prawda, przynoszą dużą wartość, ale gdyby nie były też ciekawe, to zapewne mała grupka osób by się nimi zajmowała i tak to by wisiało.

Wstęp

Przemyślałem sprawę i uznałem, że będę jednak używał nazw angielskich. Ponieważ czy to w pracy, czy na egzaminach certyfikujących, czy też w rozmowie jednak będziesz korzystał więcej ze sformułowań w języku angielskim niż polskim. Do tej pory trochę mieszałem z przyzwyczajenia, niektóre nazwy pisałem po angielsku, część tłumaczyłem i nie było to spójne.

Czym jest SSO ? (Single Sign-On), czyli pojedyncze logowanie

No to najpierw krótka historyjka, bo ostatnio ich było mało. Wyobraź sobie, że pracujesz w firmie, w której zajmujesz się marketingiem. Pracujesz na wielu systemach, do których musisz się logować, czyli uwierzytelnić się.

By potwierdzić swoją tożsamość, musisz podać login i hasło. I normalnie to nie jest problemem, gdy masz tylko jeden system czy dwa, ale robią się schody, gdy ich jest 7+. Z racji bezpieczeństwa, jak już wiesz, powinieneś do każdego systemu mieć inne hasło, najlepiej skomplikowane.

Tak, wiem, że dziś mamy passphrase i łatwiej to zapamiętać, ale przez długi czas domyślnie bezpiecznym było na przykład „A`1m2$29R aB(!2&*”. I bądź mądry i zapamiętaj dwa takie, ja z jednym miałbym problem. Da się to zrobić i są sposoby, ale czy warto? Ja sądzę, że nie. I tak pracowałeś załóżmy dwa lata w tej firmie, męczyłeś się i logowałeś do wszystkich systemów oddzielnym hasłem i loginem. I irytowało Cię to strasznie.

Ale po dwóch latach jakimś trafem zmieniłeś pracę trafiłeś do nowej firmy, w której to masz te same systemy, ale logujesz się tylko jednym loginem i hasłem i to tylko do komputera, a potem przycisk access i działa. Nie możesz wyjść z podziwu, jak to się stało. Kolega obok mówi, że tak to właśnie działa. Idziesz do IT i mówią Ci, że jest zaimplementowane SSO z tymi platformami i tak to działa.

No właśnie i czym jest to SSO?

No właśnie i czym jest to SSO? A no nie tylko Ciebie irytuje pamiętanie tysiąca loginów i tysiąca haseł. Kiedyś każdy system miał swoją oddzielną bazę danych z loginami i hasłami i do każdego serwera trzeba było się logować oddzielnie. Ale tak jak Ciebie, tak i ludzi z IT to denerwowało i wymyślili sposób, by robić to sprawniej.

Uznali, że jeśli potwierdziłeś (uwierzytelnianiłeś się) do sieci to oznacza to, że jesteś swój i możesz dostać dostęp też do innego serwera. Działa to też między różnymi organizacjami i nazywa się identity federation. Poprzez to można zaimplementować SSO w aplikacjach innego dostawcy niż nasza firma.

Wielkim plusem jest zarządzanie przy SSO dla admina, wyłączając dostęp u siebie użytkownik traci dostęp w innych systemach. Niestety minusem w tym wypadku jest to, że jest jednak tylko jedno hasło do wszystkiego.

I jeśli zostanie wyciągnięte, złamane przez napastnika, będzie on miał dostęp wszędzie za jednym razem. Dlatego przy SSO powinien być passphrase plus multi-factor authentication (MFA).

Token dostępowy

To logiczny token, który jest tworzony, kiedy użytkownik loguje się do systemu lub sieci. Determinuje on, czy użytkownik powinien mieć dostęp do zasobu, czy też powinien móc wykonywać zadania systemowe.

SID, czyli Security Identifier, to unikalny numer przypisany do użytkownika w Windows. Jest on używany zamiast nazwy użytkownika. Ty znasz konto Andrzej, ale dla systemu Windows jest to ciąg znaków, np. „S-1-5-21-1004336348-1177238915-682003330-500″.

Od razu Ci powiem, że łatwo jest rozpoznać administratorów w systemie, bo zawsze w SID ich końcówka jest 500. Jeśli bardziej interesuje Cię temat SID, to na stronie MS jest sporo informacji na początek.

Access Right: Podczas logowania Windows określa prawa, jakie masz do systemu i przechowuje Twoje prawa dostępowe w Access Token. Gdybyś na przykład chciał zmienić czas systemowy, wtedy zostanie sprawdzony Access Token, jeśli masz potrzebne uprawnienia, to będziesz mógł to zmienić a jeśli nie, to nie 😉

Protokoły uwierzytelniania w Windows

  • Protokół uwierzytelniania determinuje, jak będzie wyglądało przesłanie informacji o uwierzytelniania od klienta do serwera. Na początku opiszę uwierzytelnienie w Windows — jak to wygląda w IIS, czyli Internet Information Service i Exchange Server.
  • Basic Authentication: podstawowa uwierzytelnienia jest wysyłana od klienta do serwera za pomocą zwykłego tekstu, dlatego też nie powinna być stosowana. Za pomocą packet sniffera napastnik w moment może uzyskać poświadczenia do systemu, czego byśmy bardzo nie chcieli. No, chyba że jesteś pentesterem i chcesz pokazać w raporcie jak najwięcej znajdziek 😉
  • Anonymous authentication: Tu mamy potwierdzenie bez wymaganego logowania. Jeśli konto anonimowe ma pełne prawa, co nie powinno nigdy się zdarzyć (ale się zdarza) to masz właśnie takie uprawnienia po połączeniu się.
  • Integrated authentication: Tu mam troszkę bezpieczniejszą wersję, ponieważ logujesz się tak samo jak w Basic, ale komunikacja między serwerem jest już szyfrowana, przynajmniej odnosząc się do uwierzytelnienia.
  • Kerberos: Jest domyślnie używany w MS AD (Microsoft Active Directory). Jest to popularny obustronny protokół. Kerberos korzysta z KDC serwera, który jest odpowiedzialny za wydawanie bilecików ;). Te bileciki potrzebne są klientowi, by żądać usługi od innego serwera w sieci. Proces Kerberosa zaczyna się, gdy komputer łączy się do sieci. Server KDC ma komponent AC (Authentication Server), który daje klientów TGT (Ticket granting ticket), który to daje uprawnienia klientowi do złożenia requesta o service ticket.

Ten właśnie bilecik serwisowy jest potrzebny, by uzyskać usługi od serwera. Kiedy klient chce się podłączyć do konkretnego serwera w sieci musi wystąpić o TGS, czyli ticket-granting service, który to znowu jest kolejnym komponentem w KDC.

Trochę to skomplikowane i nikt nie mówił, że będzie łatwo. Tu wrzucam dla chętnych na doczytanie jak działa auth w AD.

Standardy Potwierdzenia Tożsamości

Te standardy potwierdzenia tożsamości są w różnych sieciowych serwisach takich jak RAS (remote access service) oraz VPN. RAS wspiera połączenia point to point używając PPP (point to point protocol) używany przez aplikacje telefoniczne do dial-upu, by połączyć się z serwerem RSA. A VPN, jak wiadomo, tworzy tunelowanie przez publiczną sieć, jaką jest internet. Oba korzystają z poniższych protokołów uwierzytelnienia:

  • PAP, czyli Password Auth Protocol wysyła komunikację w plain text, czyli w zwykłym tekście. Który, jak już wiesz, możesz śmiało potraktować packet snifferem i dostać się do miodku. Zwróć też uwagę, że świat kiedyś działał ciekawie, wymyślono Enigmę. I już wtedy szyfrowano wiadomości, by wróg się o nich nie dowiedział. A potem przyszedł czas internetu zapomniano o tym pomyśle. W każdej technologii, w każdym temacie, o którym zaczynam Ci opowiadać, jest plain text. Wszędzie zaczynano od nieszyfrowania i nikt nie wpadł na pomysł, by od razu komunikować się za pomocą szyfrów 🙂
  • CHAP, czyli Challenge Handshake Authentication Protocol. Protokół ten wysyła challenge (klucz) do klienta. Następnie klient miesza hasło z challengem. Puszcza przez haszowanie w MD5 (algorytmy haszowania jeszcze poruszymy, na te chwilę musisz wiedzieć, że zanim zahaszuję, to dodaje coś do niego). I wtedy klient wysyła tę wartość hasha do serwera, by się uwierzytelnić. Teraz serwer robi to samo u siebie i przy uwierzytelnieniu porównuje tylko te dwa hashe. Co daje nam brak przesyłania samego hasła po sieci.
  • MS-CHAP, czyli Microsoft Challenge Handshake Authentication Protocol to odmiana protokołu CHAP wymyślona przez Microsoft. Korzysta z MD4 zamiast z MD5. MS-CHAP dodatkowo korzysta z MPPE (Microsoft Point-to-Point Encryption), by zaszyfrować cały ruch z klienta do serwera.
  • MS-CHAP2 w wersji drugiej powyższego protokołu uwierzytelnienia została rozszerzona na obu — klienta i serwer — oraz korzysta ona z silniejszego szyfrowania.
  • EAP, czyli Extensible Authentication Protocol — pozwala on na kilka metod logowania na raz, np. smartcard, certyfikaty, Kerberos, public-key auth. EAP wykorzystywany jest z Radiusem, który to jest centralnym serwerem uwierzytelniajacym. Ale na jego temat więcej dowiesz się w kolejnym artykule.

Podsumowanie

Poznałeś czym jest SSO oraz token dostępu. Wiesz już jak wyglądają i czym się różnią zarówno protokoły uwierzytelniania w windows jak i standardy potwierdzania tożsamości. Na zakończenie dodam, że to nie koniec historii, już w przyszłym tygodniu kolejna część o Auth. Więc czekaj niecierpliwie, bo dowiesz się jeszcze więcej. Zapraszam do oceny wartości artykułu poprzez komentarz bądź zaznaczenie gwiazdki ;).

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ć