Wykład 2 Inżynieria Oprogramowania



Podobne dokumenty
Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Java wybrane technologie

ZiMSK. Konsola, TELNET, SSH 1

Modele uwierzytelniania, autoryzacji i kontroli dostępu do systemów komputerowych.

Aplikacje www laboratorium

Zdalne logowanie do serwerów

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

SSL (Secure Socket Layer)

Serwery LDAP w środowisku produktów w Oracle

Podpisywanie i bezpieczne uruchamianie apletów wg

Podstawy Secure Sockets Layer

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Bazy danych 2. Wykład 1

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

1 Wprowadzenie do J2EE

(Pluggable Authentication Modules). Wyjaśnienie technologii.

11. Autoryzacja użytkowników

Serwery autentykacji w sieciach komputerowych

Problematyka bezpieczeństwa usług Web Services. Witold Andrzejewski

Bezpieczeństwo usług oraz informacje o certyfikatach

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Sieci VPN SSL czy IPSec?

System Kancelaris. Zdalny dostęp do danych

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Szczegółowy opis przedmiotu zamówienia:

Tomasz Greszata - Koszalin

TelCOMM Wymagania. Opracował: Piotr Owsianko Zatwierdził: IMIĘ I NAZWISKO

Współpraca z platformą Emp@tia. dokumentacja techniczna

Oracle9iAS: instalacja i konfiguracja aplikacji J2EE

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

Bringing privacy back

Program szkolenia: Bezpieczny kod - podstawy

Oferta świadczenia pomocy prawnej dla Zdalny dostęp do dokumentów

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Kielce, dnia roku. HB Technology Hubert Szczukiewicz. ul. Kujawska 26 / Kielce

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Podpis elektroniczny dla firm jako bezpieczna usługa w chmurze. mgr inż. Artur Grygoruk

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

BeamYourScreen Bezpieczeństwo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

Architektura mikroserwisów na platformie Spring IO

Zastosowania PKI dla wirtualnych sieci prywatnych

Protokoły zdalnego logowania Telnet i SSH

Dokumentacja SMS przez FTP

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Sieciowa instalacja Sekafi 3 SQL

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Jak bezpieczne są Twoje dane w Internecie?

Sieci komputerowe i bazy danych

Bezpieczeństwo Digital Certificate Manager

Świadczenie usługi hurtowej wysyłki wiadomości SMS dla Urzędu Miasta Torunia w latach

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

Protokół Kerberos BSK_2003. Copyright by K. Trybicka-Francik 1. Bezpieczeństwo systemów komputerowych. Złożone systemy kryptograficzne

ZAŁĄCZNIK Nr 3 do CZĘŚCI II SIWZ

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

INFRA. System Connector. Opis systemu

Polityka prywatności i bezpieczeństwa przetwarzania danych osobowych w zbiorze czas-na-przeglad.pl

ZAŁĄCZNIK NR 1 DO REGULAMINU SERWISU ZNANEEKSPERTKI.PL POLITYKA OCHRONY PRYWATNOŚCI

Bezpieczne protokoły Materiały pomocnicze do wykładu

WSIZ Copernicus we Wrocławiu

Księgarnia PWN: Jan De Clercq, Guido Grillenmeier - Bezpieczeństwo Microsoft Windows. Podstawy praktyczne

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych. w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

Problemy z bezpieczeństwem w sieci lokalnej

Tomasz Grześ. Systemy zarządzania treścią

API STRESZCZENIE DOKUMENTACJI TECHNICZNEJ. Strona 1 z 8

Wzorcowy załącznik techniczny, do umowy w sprawie przesyłania faktur elektronicznych pomiędzy Firmą A oraz Firmą B

System DiLO. Opis interfejsu dostępowego v. 2.0

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP

Protokół Kerberos BSK_2003. Copyright by K. Trybicka-Francik 1. Bezpieczeństwo systemów komputerowych. Złożone systemy kryptograficzne

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

Bezpieczny dostęp do usług zarządzania danymi w systemie Laboratorium Wirtualnego

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wybrane działy Informatyki Stosowanej

Pojęcie systemu baz danych

Aplikacja npodpis do obsługi certyfikatu

Transkrypt:

Wykład 2 Inżynieria Oprogramowania Bezpieczeństwo(1) Wprowadzenie do mechanizmów bezpieczeństwa w programach Javy EE wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Struktura wykładu 1. Przykład przetwarzania strony 2. Cechy zabezpieczeń 3. Pojęcia systemu zabezpieczeń 4. Java EE - Poziomy implementacji mechanizmów bezpieczeństwa 5. Poziomy zabezpieczeń 6. Rodzaje mechanizmów bezpieczeństwa w kontenerach 7. Rodzaje mechanizmów bezpieczeństwa w serwerze aplikacji 8. Bazy użytkowników i grup, Użytkownik, Grupa, Rola 9. Implementacja mechanizmów bezpieczeństwa w platformie Java SE

1. Przykład przetwarzania strony Krok 1: Żądanie inicjujące

Krok 2: Uwierzytelnienie inicjujące (login i hasło)

Krok 3: Autoryzacja URL serwer www określa rolę zalogowanego użytkownika i może kontrolować dostęp do konkretnych zasobów

Krok 4: Zakończenie przetwarzania żądania

Krok 5: Wykonanie funkcji biznesowej

2. Cechy zabezpieczeń Prawidłowo zastosowane mechanizmy zabezpieczeń: Uniemożliwiają nieautoryzowany dostęp do funkcji aplikacji oraz danych osobistych i biznesowych Utrzymują odpowiedzialność użytkowników systemu za wykonywane operacje Chronią system przed niezaplanowanymi przerwami w pracy podnoszą jakość usług systemu W idealnym przypadku mamy: Łatwe administrowanie systemem Przezroczysty system dla użytkowników W pełni współpracujące części aplikacji w ramach całego systemu

3. Pojęcia systemu zabezpieczeń Uwierzytelnianie (Authentication): Uwierzytelnianie pozwalające komunikującym się encjom (np. klient i serwer)) na rozpoznanie się w celu wykonania autoryzowanych funkcji Autoryzacja lub kontrola dostępu (Authorization, or access control): oznacza związki między zasobami systemu a zbiorem użytkowników lub programów w celu zachowania poprawnego działania systemu przez kontrolę dostępu do poszczególnych funkcji systemu. Autoryzacja opiera się na identyfikacji i uwierzytelnianiu. Identyfikacja jest procesem umożliwiającym rozpoznanie encji przez system Uwierzytelnianie jest procesem umożliwiającym weryfikację użytkownika, urządzenia lub encji w systemie komputerowym, zazwyczaj jako początkowy warunek umożliwiający dostęp do zasobów systemu Integralność danych (Data integrity): zabezpieczenie przed niekontrolowanych dostępem do danych (np. dane otrzymane w systemie mogą być zmieniane tylko przez autoryzowanych użytkowników dzięki zastosowaniu podpisu cyfrowego) Poufność danych (Confidentiality or Data Privacy): pewność, że dane są udostępnione tylko użytkownikom o autoryzowanym dostępie. Dane są szyfrowane podczas transmisji. Zapobieganie unikaniu odpowiedzialności (Non-repudiation): Usługa, która stanowi dowód pochodzenia i integralność danych (oznacza pewność, że dane zostały przesłane przez stronę, która nie może później wyprzeć się autorstwa tych danych oraz odbiorca nie może wyprzeć się, że odebrał te dane). Usługa ta jest zapewniana za pomocą podpisu cyfrowego danych, mechanizmu znaczników potwierdzania nadawania i odbioru danych oraz znaczników czasu zawierających datę i czas powstania danych. Jakość usług (Quality of Service (QOS)): System i dane muszą być dostępne w momencie, kiedy są potrzebne Kontrola (Auditing): Oznacza metody utrzymywania kontroli mechanizmów bezpieczeństwa w celu poprawy ich efektów

4. Java EE - Poziomy implementacji mechanizmów bezpieczeństwa JAVA EE Server Kontener web Kontener EJB Mechanizmy bezpieczeństwa Java EE są oddzielone od systemu operacyjnego

5. Poziomy zabezpieczeń 5.1. Zabezpieczenia na poziomie aplikacji realizowana na poziomie kontenerów: Zalety: Bezpieczeństwo jest dedykowane aplikacji. Bezpieczeństwo jest reprezentowane przez ziarna powiązane z parametrami aplikacji. Wady: Aplikacja jest zależna od atrybutów mechanizmu bezpieczeństwa różnych dla różnych typów aplikacji Nie można zabezpieczyć różnych protokołów Nie można zabezpieczyć danych

5.2. Zabezpieczenia na poziomie protokołu transportowego Protokół HTTP z użyciem protokołu SSL (Secure Sockets Layer) nazywany jest protokołem HTTPS. Bezpieczeństwo protokołu transportu jest mechanizmem bezpieczeństwa typu point-to-point, który określa uwierzytelnianie, integralność wiadomości i jej poufność. Fazy ustalania bezpieczeństwa poziomu transportu: Klient i serwer www uzgadniają właściwy algorytm kryptograficzny. Następuje uwierzytelnienie serwera www (czasem również klienta) za pomocą cyfrowego certyfikatu oraz wysłanie klucza prywatnego zw. kluczem sesji (wygenerowanego przez przeglądarkę) przy użyciu szyfrowania kluczem publicznym serwera. Wykorzystuje się szyfrowanie symetryczne wymienianych wiadomości za pomocą klucza prywatnego, który ma teraz serwer i przeglądarka. Zalety: Relatywnie prosty, zrozumiały i standardowy Stosowany do ciała wiadomości i załączników Wady: Duże powiązanie z poziomem protokołu transportu wiadomości Wszystko lub nic z punktu widzenia bezpieczeństwa. Nie można szyfrować fragmentów wiadomości. Bezpieczeństwo jest zapewnione jedynie podczas transmisji wiadomości. Zabezpieczenia są usuwane automatycznie po odbiorze wiadomości

5.3. Zabezpieczenia na poziomie wiadomości Bezpieczeństwo informacji obejmuje wiadomości SOAP i/lub załączniki tej wiadomości. Serwer aplikacji i Pakiet serwisu Usług Internetowych (Java Web Services Developer Pack (Java WSDP)) wspierają mechanizmy bezpieczeństwa: Zalety: Zabezpieczenia wiadomości są również obecne po jej odebraniu. Jest reprezentowana przez ziarna. Można dlatego zabezpieczać części wiadomości i/lub załączniki używając XWSS (XML and Web Services Security ) Może być łączona z innymi zabezpieczeniami. Jest niezależna od środowiska aplikacji i protokołu transportowego Wady : jest to złożony mechanizm obciążający wydajność procesu

6. Rodzaje mechanizmów bezpieczeństwa w kontenerach Deklaratywne mechanizmy bezpieczeństwa deklarowane za pomocą tzw. deployment descriptors (deskryptory aplikacji np. web.xml dla aplikacji typu web ). Deskryptory jako zewnętrzny element aplikacji zawierają informację specyfikującą role bezpieczeństwa i wymagania dostępu są mapowane w role specyficzne dla środowiska oraz użytkowników i polisy bezpieczeństwa. Programowe mechanizmy bezpieczeństwa - są osadzone w aplikacji i służą do podejmowanie decyzji o bezpieczeństwie. Uzupełniają deklaratywne mechanizmy bezpieczeństwa lepiej wyrażają model bezpieczeństwa aplikacji. API mechanizmów programowych: metody interfejsu EJBContext metody interfejsu HttpServletRequest. Metody te pozwalają na podejmowanie decyzji biznesowych opartych na rolach bezpieczeństwa nadawcy lub zdalnego odbiorcy Adnotacje lub metadane są używane do specyfikowania informacji wewnątrz pliku z kodem klasy. Kiedy aplikacja jest uruchamiana, informacja ta jest używana lub pokrywana przez deskryptor aplikacji. Np. @DeclareRoles( klient") public class Page1 extends AbstractPageBean { //... }

7. Rodzaje mechanizmów bezpieczeństwa w serwerze aplikacji Dodawanie, usuwanie i modyfikowanie autoryzowanych użytkowników Dodawanie, usuwanie i modyfikowanie baz użytkowników i grup lub danych użytkownika Konfiguracja bezpieczeństwa HTTP i IIOP Konfiguracja bezpieczeństwa połączeń JMX. Definiowanie interfejsu dla narzędzi autoryzacji z wykorzystaniem Java Authorization Contract for Containers (JACC). Definiowanie kontraktów bezpieczeństwa między Serwerem Aplikacji a modułami polis bezpieczeństwa wykorzystanie Java Authorization Contract for Containers (JACC) (specyfikuje narzędzia autoryzacji: konfiguracje, sposób użycia w kontroli dostępu) Użycie dołączanych modułów kontroli Ustawianie i zmiana uprawnień dla aplikacji

8. Bazy użytkowników i grup, Użytkownik, Grupa, Rola

8.1. Praca z bazami użytkowników, użytkownikami, grupami i rolami Często należy zabezpieczyć zasoby przed niepożądanym dostępem za strony użytkowników. Autoryzacja pozwala kontrolować dostęp do zasobów chronionych Programista pisze kod żądający od użytkownika nazwy i hasła Programista oznajmia, jak ustawić bezpieczeństwo uruchomianej aplikacji za pomocą deskryptora aplikacji (bezpośrednio lub pośrednio za pomocą adnotacji) Administrator serwera ustawia autoryzowanych użytkowników i grupy na serwerze aplikacji. Programista mapuje role bezpieczeństwa aplikacji na użytkowników, grupy i zleceniodawców zdefiniowanych na serwerze aplikacji.

8.2. Baza użytkowników na serwerze aplikacji W aplikacjach www baza danych użytkowników i grup które umożliwiają identyfikację właściwych użytkowników aplikacji www lub grup aplikacji www i są kontrowane przez te sama polisę uwierzytelniającą. Serwer aplikacji dla aplikacji Java EE posiada usługę uwierzytelniania za pomocą baz użytkowników. Istnieją następujące typy baz: admin-realm, file, bazy certyfikatów W bazie typu file (plik o nazwie keyfile) serwer przechowuje listy uwierzytelniające użytkowników, zarządzanych za pomocą narzędzia Admin Console W bazie typu file usługa uwierzytelniania przez serwer polega na sprawdzeniu wszystkich użytkowników w bazie typu file oprócz tych, którzy używają protokołów HTTPS i certyfikatów. W bazie certyfikatów (certificate realm) serwer przechowuje listy uwierzytelniające użytkowników internetowych. Kiedy używana jest baza certyfikatów, serwer używa certyfikatów razem z protokołem HTTPS do uwierzytelniania użytkowników internetowych. Do weryfikacji serwer używa certyfikat X.509. Pole name tego certyfikatu jest używane jako principal name. Baza typu admin-realm (plik o nazwie admin-keyfile) przechowuje listy uwierzytelniające administratorów, zarządzane przez narzędzie Admin Console.

Użytkownik? Użytkownik jest indywidualną tożsamością zdefiniowaną w Serwerze aplikacji. W aplikacji internetowej użytkownik ma zbiór ról związanych z tożsamością, która określa dostęp do zasobów aplikacji. Użytkownicy gromadzeni są w grupy. Użytkownik Java EE jest podobny do użytkownika systemu operacyjnego. Może być nim człowiek. Jednak nie ma powiązania między systemem uwierzytelniania w systemie operacyjnym i aplikacji JavaEE. Grupa? Grupa jest zbiorem uwierzytelnianych użytkowników zdefiniowanych w Serwerze Aplikacji. Użytkownik Java EE zapisany w bazie typu file może należeć do grupy, natomiast użytkownik z bazy typu certificate nie może należeć do grupy. Grupa jest tworzona wg potrzeb związanych z typem pracy użytkownika np. klient w grupie klienci Grupa jest związana z przechowywaniem jej na serwerze aplikacji, natomiast rola jest związana z aplikacją na serwerze aplikacji. Rola? Rola jest abstrakcyjną nazwą związaną z pozwoleniem na dostęp do wyspecyfikowanych zasobów w aplikacji.

8.3.Definiowanie mechanizmów bezpieczeństwa w deskryptorze aplikacji : ról, kolekcji url, transportu danych <security-constraint> <display-name>klientconstraint</display-name> <web-resource-collection> <web-resource-name>klient</web-resource-name> <description/> <url-pattern>/faces/page1.jsp</url-pattern> <url-pattern>/faces/tytuly.jsp</url-pattern> <url-pattern>/faces/ksiazki.jsp</url-pattern> <http-method>get</http-method> <http-method>post</http-method> <http-method>head</http-method> <http-method>put</http-method> <http-method>options</http-method> <http-method>trace</http-method> <http-method>delete</http-method> </web-resource-collection> <auth-constraint> <description/> <role-name>klient1</role-name> </auth-constraint> <user-data-constraint> <description/> <transport-guarantee>confidential</transport-guarantee> </user-data-constraint> </security-constraint>

<security-constraint> <display-name>administratorconstraint</display-name> <web-resource-collection> <web-resource-name>administrator</web-resource-name> <description/> <url-pattern>/faces/*</url-pattern> <http-method>get</http-method> <http-method>post</http-method> <http-method>head</http-method> <http-method>put</http-method> <http-method>options</http-method> <http-method>trace</http-method> <http-method>delete</http-method> </web-resource-collection> <auth-constraint> <description/> <role-name>administrator1</role-name> </auth-constraint> <user-data-constraint> <description/> <transport-guarantee>confidential</transport-guarantee> </user-data-constraint> </security-constraint>

Ustawianie sposobu uwierzytelniania użytkowników i ustawiania ról w deskryptorze aplikacji web.xml <login-config> <auth-method>form</auth-method> <realm-name>file</realm-name> <form-login-config> <form-login-page>/logon.jsp</form-login-page> <form-error-page>/logonerror.jsp</form-error-page> </form-login-config> </login-config> <security-role> <description/> <role-name> klient1 </role-name> </security-role> <security-role> <description/> <role-name> administrator1 </role-name> </security-role> </web-app>

8.4. Mapowanie ról do użytkowników i grup Podczas uruchamiania aplikacji Java EE korzysta się z mechanizmu mapowania ról nadanych w aplikacji do użytkowników lub grup w plikach typu file lub admin-realm. Mapowane są role do użytkowników i grup zdefiniowanych w serwerze aplikacji. Wykonuje się to w deskryptorze serwera aplikacji (w zależności od typu aplikacji: sunapplication.xml, sun-web.xml, or sun-ejb-jar.xml). Należy zdefiniować w deskryptorze serwera mapowanie roli, zdefiniowanej w deskryptorze aplikacji web.xml, za pomocą nazwy group lub nazwy principals odpowiadające nazwie jednego lub wielu użytkownikom lub jednej lub wielu grupom w pliku typu file lub admin-realm w serwerze aplikacji. <context-root>/webwypozyczalnia3</context-root> <security-role-mapping> <role-name>administrator1</role-name> <principal-name>administrator</principal-name> </security-role-mapping> <security-role-mapping> <role-name>klient1</role-name> <group-name>klienci</group-name> </security-role-mapping> Nazwa grupy w serwerze aplikacji Nazwy ról w aplikacji Nazwa użytkownika w serwerze aplikacji

9. Java SE - Implementacja mechanizmów bezpieczeństwa Java Authentication and Authorization Service (JAAS) APIs obsługujące usługi uwierzytelniania i autoryzacji dostępu użytkowników do zasobów systemu. Java Generic Security Services (Java GSS-API) Java GSS-API jest oparte na żetonach API używane do bezpiecznej wymiany komunikatów między aplikacjami. Dostarcza ona zunifikowany zestaw usług zapewniających mechanizmy bezpieczeństwa, włączając Kerberos. Java Cryptography Extension (JCE) JCE dostarcza framework i implementację mechanizmów szyfrowania, generowania kluczy, serializowania obiektów Java Secure Sockets Extension (JSSE) JSSE dostarcza framework i implementację protokołów SSL and TLS i zawiera funkcje szyfrowania, uwierzytelniania serwerów, integralności wiadomości i uwierzytelniania klientów podczas komunikacji przez Internet. Simple Authentication and Security Layer (SASL) SASL jest standardem internetowym (RFC 2222), który specyfikuje protokół do uwierzytelniania i zapewnienia bezpieczeństwa podczas komunikacji klientserwer. SASL definiuje sposób uwierzytelniania przesyłanych danych bez specyfikowania zawartości danych.