Każda grupa laboratoryjna wybiera dokładnie jedno zadanie z poniższego zestawu dziesięciu unikalnych studiów przypadków do opracowania w formie pisemnego referatu technicznego. Prace realizowane są w zespołach liczących od dwóch do trzech studentów, a łączny czas przewidziany na realizację ćwiczenia wynosi 180 minut. Zadania mają charakter analityczno-opisowy z umiarkowanym wykorzystaniem bezpłatnego oprogramowania narzędziowego (OpenSSL, GnuPG, cURL, Oathtool, MikroTik RouterOS) oraz testerów i analizatorów transakcyjnych. Studenci pracują w środowiskach Linux, Windows oraz MikroTik RouterOS, weryfikując mechanizmy uwierzytelniania powiadomień (HMAC), procedury Silnego Uwierzytelniania Klienta (SCA/2FA zgodnie z PSD2), tokenizację danych kartowych (PCI DSS) oraz nienaruszalność ścieżek audytowych (Hash Chain). Główny nacisk dydaktyczny położony jest na zrozumienie analizowanego problemu, identyfikację luk w protokołach płatniczych oraz wypracowanie racjonalnych i skutecznych procedur ochronnych. Zaliczenie zadania na ocenę 3.0 wymaga wykazania opanowania podstawowej wiedzy o bezpieczeństwie transakcji finansowych oraz ustnego omówienia przygotowanego opracowania.
Z laboratorium każda grupa przygotowuje jedno łączne sprawozdanie w formacie dokumentu PDF o objętości od czterech do sześciu stron znormalizowanego tekstu. Dokument musi rozpoczynać się od strony tytułowej zawierającej pełną nazwę uczelni, nazwę przedmiotu, imiona i nazwiska członków grupy wraz z numerami albumów, kierunek, numer grupy dziekańskiej oraz rok akademicki. Bezpośrednio pod stroną tytułową należy wkleić pełną, niezmienioną treść wybranego do realizacji zadania laboratoryjnego. Układ merytoryczny pracy musi obligatoryjnie obejmować wstęp wprowadzający w tematykę, szczegółowe rozwinięcie problemu badawczego oraz podsumowanie z wnioskami. W części analitycznej wymagany jest obszerny opis zidentyfikowanych zagrożeń, uzasadnienie doboru parametrów kryptograficznych oraz wskazanie korzyści wynikających z wykonania zadania. W przypadku elementów technicznych sprawozdanie musi zawierać logiczny schemat działania, wykaz wykorzystanych bezpłatnych narzędzi oraz listingi poleceń CLI wraz z ich analizą. Treść sprawozdania musi w sposób jednoznaczny dowodzić, że zespół w pełni zrozumiał istotę zadania i samodzielnie je zrealizował. W referacie należy podać spis wykorzystanych źródeł, w tym aktów prawnych (Kodeks karny, RODO, dyrektywa PSD2, KRI), norm serii PN-EN ISO/IEC 27001 oraz oficjalnych biuletynów technicznych CSIRT NASK i wytycznych KNF. Obrona sprawozdania odbywa się w trakcie zajęć poprzez krótkie ustne wystąpienie każdego członka grupy i odpowiedzi na pytania kontrolne prowadzącego.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Symetryczne i niesymetryczne algorytmy szyfrowania. Podpisy cyfrowe i funkcje skrótu. Efekty uczenia się: W1, W3, U1, U2, U3, K1, K2.
Głównym celem zadania jest opanowanie mechanizmu asynchronicznych powiadomień transakcyjnych (Webhooks) w handlu elektronicznym oraz praktyczna demonstracja wyliczania i weryfikacji kodów uwierzytelniania wiadomości HMAC-SHA256. Studenci poznają zasady ochrony integralności danych przesyłanych pomiędzy operatorem płatności (bramką płatniczą) a systemem e-commerce.
W toku ćwiczenia zespół analizuje strukturę ładunku JSON generowanego przez bramkę, implementuje skrypt walidacji sygnatury w wierszu poleceń z użyciem OpenSSL oraz przeprowadza kontrolowaną symulację ataku manipulacji treścią powiadomienia (np. zmiana statusu płatności na COMPLETED lub podmienienie kwoty). Studenci weryfikują natychmiastowe wykrycie fałszerstwa przez mechanizm HMAC. Wynikiem prac jest zabezpieczony endpoint transakcyjny oraz sprawozdanie techniczne.
Spółka „TechMarket” Sp. z o.o. z Poznania prowadzi popularny sklep internetowy ze sprzętem komputerowym i elektroniką użytkową. Sklep korzysta z zewnętrznej bramki płatności online (odpowiednik PayU, Przelewy24 lub Tpay) do przyjmowania wpłat od klientów za pośrednictwem kart i szybkich przelewów.
Podczas rutynowego audytu bezpieczeństwa stwierdzono krytyczną podatność w module obsługi powiadomień asynchronicznych: adres URL powiadomień sklepu '/api/platnosci/webhook' przyjmował każde żądanie HTTP POST zawierające pole status=COMPLETED i automatycznie zlecał magazynowi wysyłkę towaru, nie weryfikując w ogóle kryptograficznej sygnatury nadawcy.
Oznacza to, że cyberprzestępca mógł wysłać spreparowane żądanie curl bezpośrednio do serwera sklepu, podszywając się pod operatora płatności i wymuszając wysyłkę drogiego laptopa za zamówienie, za które w rzeczywistości nie zapłacił ani grosza. Zarząd spółki nakazał natychmiastowe zablokowanie tej podatności.
Zespół studentów ma za zadanie zaimplementować i przetestować mechanizm weryfikacji podpisu HMAC-SHA256 zgodnie z oficjalnym standardem polskich bramek płatności. Uczestnicy konfigurują wspólny sekret transakcyjny (Second Key), generują poprawny webhook z sygnaturą, tworzą procedurę walidacyjną po stronie sklepu, a następnie przeprowadzają symulację ataku manipulacji kwotą i statusem.
W końcowym etapie prac zespół dokumentuje odporność sklepu na nieautoryzowane powiadomienia oraz formułuje zalecenia dotyczące bezpiecznego przechowywania kluczy API poza kodem źródłowym aplikacji.
Mechanizm HMAC (Hash-based Message Authentication Code, RFC 2104) łączy kryptograficzną funkcję skrótu (np. SHA-256) z tajnym kluczem symetrycznym. W przeciwieństwie do zwykłej sumy kontrolnej SHA-256, której obliczenie jest dostępne dla każdego, kod HMAC może obliczyć i zweryfikować wyłącznie podmiot znający tajny klucz.
W integracjach e-commerce (np. PayU, Przelewy24, Stripe) powiadomienie transakcyjne wysyłane jest w ciele żądania POST, a sygnatura HMAC umieszczana jest w dedykowanym nagłówku odpowiedzi (np. 'OpenPayu-Signature' lub 'X-Signature'). Sklep przed przetworzeniem zamówienia musi bezwzględnie przeliczyć HMAC z surowego ciągu bajtów żądania.
Poniżej przedstawiono przykładowy widok konsoli serwera Linux podczas generowania poprawnej sygnatury HMAC oraz demonstracji odrzucenia sfałszowanego webhooka:
Zwróć uwagę na problem kanoniczności danych JSON (JSON Canonicalization). W produkcyjnych systemach formatowanie tekstu (białe znaki, spacje, kolejność kluczy) może ulec zmianie podczas przesyłania przez sieć. Bramki płatności często wymagają wyliczania HMAC ze ściśle zdefiniowanego ciągu parametrów lub surowego strumienia bajtów odebranych z gniazda HTTP.
W sprawozdaniu wyjaśnij różnicę pomiędzy atakiem na integralność danych (Tampering) a atakiem powtórzeniowym (Replay Attack). Sam HMAC chroni przed modyfikacją treści, jednak ochrona przed ponownym przesłaniem tego samego poprawnego webhooka wymaga stosowania unikalnych identyfikatorów zamówień oraz wektorów Nonce (ćwiczenie 03).
Przykładowe wnioski (wzór do sprawozdania): Implementacja mechanizmu weryfikacji powiadomień Webhook za pomocą kodów HMAC-SHA256 udowodniła, że integralność komunikatów transakcyjnych jest warunkiem koniecznym do zabezpieczenia sklepu przed stratami finansowymi. Symulacja ataku polegającego na modyfikacji kwoty zamówienia w formacie JSON wykazała, że brak znajomości tajnego klucza (Shared Secret) uniemożliwia napastnikowi wygenerowanie poprawnego podpisu kryptograficznego. Wykorzystanie funkcji skrótu SHA-256 w konstrukcji HMAC gwarantuje, że zmiana chociażby jednego bajtu treści wywołuje drastyczną zmianę sygnatury w wyniku efektu lawinowego. Odrzucenie sfałszowanego powiadomienia statusem 401 Unauthorized uchroniło system przed nieuprawnioną wysyłką towaru. Wdrożona procedura w pełni realizuje wytyczne bezpieczeństwa transakcji elektronicznych określone w międzynarodowym standardzie PCI DSS.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Autoryzacja i uwierzytelnianie w systemach komputerowych. Efekty uczenia się: W1, W4, U1, U2, U4, K1, K3.
Celem ćwiczenia jest praktyczne zrozumienie wymogów Silnego Uwierzytelniania Klienta (Strong Customer Authentication – SCA) wprowadzonego przez unijną dyrektywę PSD2 (Payment Services Directive 2) oraz standardy techniczne RTS EBA. Studenci poznają zasady działania trójskładnikowego modelu uwierzytelniania (wiedza, posiadanie, cecha klienta).
W toku laboratorium zespół implementuje i testuje mechanizm uwierzytelniania dwuskładnikowego (2FA) oparty na algorytmie jednorazowych haseł czasowych TOTP (Time-based One-Time Password, RFC 6238) za pomocą narzędzia Oathtool w systemie Linux. Studenci analizują koncepcję dynamicznego łączenia transakcji (Dynamic Linking), weryfikują odporność na phishing i ataki Man-in-the-Middle oraz przygotowują raport audytorski zgodności z PSD2.
Spółdzielczy Bank Finansowy „Vistula” w Płocku modernizuje portal bankowości elektronicznej dla klientów indywidualnych i korporacyjnych. Zgodnie z wytycznymi Komisji Nadzoru Finansowego (KNF) oraz art. 97 dyrektywy PSD2, bank musi bezwzględnie stosować Silne Uwierzytelnianie Klienta (SCA) przy każdym logowaniu do konta oraz przy autoryzacji elektronicznych operacji płatniczych.
Wcześniejszy mechanizm autoryzacji przelewów opierał się na papierowych kartach kodów jednorazowych (karty zdrapki) lub prostych hasłach SMS. Inspekcja bezpieczeństwa wykazała, że kody SMS są podatne na przechwycenie w wyniku ataku wymiany karty SIM (SIM-Swap Scam) oraz podatne na fałszywe strony pośredniczące (phishing z przejęciem sesji).
Zarząd banku podjął decyzję o wdrożeniu nowoczesnego mechanizmu 2FA opartego na standardzie TOTP (generatory programowe Google Authenticator / FreeOTP) zintegrowanego z dynamicznym łączeniem operacji: kod autoryzacyjny musi być kryptograficznie powiązany z kwotą przelewu i numerem rachunku odbiorcy.
Zespół studentów wciela się w inżynierów bezpieczeństwa bankowego. Zadanie polega na skonfigurowaniu generatora klucza sekretnego w formacie Base32, symulacji generowania 6-cyfrowych kodów TOTP w 30-sekundowych oknach czasowych, weryfikacji przesunięcia zegara (Clock Drift) oraz zaprojektowaniu schematu dynamicznego łączenia parametrów przelewu.
W końcowym etapie prac zespół przeprowadza audyt zgodności procedury z kryteriami niezależności składników uwierzytelniania oraz formułuje zalecenia dotyczące postępowania w przypadku utraty urządzenia uwierzytelniającego przez klienta.
Algorytm TOTP (Time-based One-Time Password) jest wariantem algorytmu HOTP, w którym licznik zdarzeń został zastąpiony liczbą 30-sekundowych interwałów czasowych, jakie upłynęły od początku epoki Uniksa (1 stycznia 1970 r.). Wzór opiera się na funkcji: TOTP = Truncate(HMAC-SHA1(K, T)), gdzie T = floor(UnixTime / 30).
Wymóg 'Dynamicznego Łączenia' (Dynamic Linking) zdefiniowany w art. 97 ust. 2 dyrektywy PSD2 nakazuje, aby kod uwierzytelniający transakcję płatniczą był powiązany z kwotą transakcji oraz odbiorcą wskazanym przez płatnika. Zabezpiecza to klienta przed atakiem typu Man-in-the-Browser, w którym złośliwe oprogramowanie na komputerze podmienia numer konta w locie.
Poniżej przedstawiono przykładowy widok konsoli demonstrujący generowanie i walidację kodu TOTP oraz weryfikację z tolerancją okna czasowego za pomocą oathtool:
W praktyce bankowej klucz sekretny Base32 jest prezentowany klientowi w formie graficznego kodu QR podczas rejestracji urządzenia (format URI: 'otpauth://totp/BankVistula:jan.kowalski?secret=...&issuer=BankVistula'). Użytkownik skanuje kod aplikacją w telefonie, co automatycznie konfiguruje generator.
W środowisku serwerowym klucz sekretny użytkownika musi być bezwzględnie zaszyfrowany w bazie danych (np. za pomocą AES-256), a nie przechowywany w postaci otwartego tekstu. Dostęp do bazy kluczy powinien być chroniony sprzętowym modułem HSM.
Przykładowe wnioski (wzór do sprawozdania): Analiza wymogów unijnej dyrektywy PSD2 potwierdziła, że tradycyjne uwierzytelnianie jednoskładnikowe oparte wyłącznie na haśle statycznym nie spełnia współczesnych standardów bezpieczeństwa bankowości internetowej. Implementacja standardu TOTP (RFC 6238) za pomocą narzędzia oathtool z powodzeniem połączyła element wiedzy (hasło klienta) z elementem posiadania (generator kodów w aplikacji mobilnej). Ograniczenie czasu ważności kodu jednorazowego do 30 sekund skutecznie zapobiega jego powtórnemu wykorzystaniu przez intruza w razie podsłuchania transmisji. Zastosowanie Silnego Uwierzytelniania Klienta (SCA) drastycznie ogranicza skuteczność masowych ataków phishingowych oraz wycieków baz danych poświadczeń. Wyniki zadania dowodzą, że wymogi regulacyjne PSD2 przyczyniły się do fundamentalnego podniesienia odporności europejskiego sektora płatności cyfrowych.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Kon2 Warunki zapewnienia poufności i autentyczności informacji. Kon4 Autoryzacja i uwierzytelnianie w systemach komputerowych. Efekty uczenia się: W1, W3, U1, U3, U4, K1, K2.
Celem zadania jest praktyczne zrozumienie zagrożenia atakami powtórzeniowymi (ang. Replay Attacks) w protokołach transakcji elektronicznych oraz opanowanie kryptograficznych technik ich mitygacji. Studenci dowiadują się, dlaczego samo szyfrowanie i podpis cyfrowy nie chronią przed ponownym przesłaniem przechwyconego pakietu autoryzacyjnego.
W trakcie laboratorium zespół analizuje mechanizm działania jednorazowych wektorów losowych (Nonce – Number used Once) oraz znaczników czasu (Timestamps) wbudowywanych w komunikaty płatnicze. Studenci implementują i testują procedurę walidacji unikalności wektora Nonce oraz sprawdzania okna ważności znacznika czasu w środowisku Linux CLI, a następnie symulują próbę podwójnego obciążenia rachunku klienta. Zadanie kończy się raportem technicznym.
Firma Pożyczkowa „Szybki-Kredyt” w Toruniu udostępnia aplikację mobilną umożliwiającą klientom zaciąganie krótkoterminowych pożyczek oraz zlecanie spłat rat kredytowych za pośrednictwem bezpiecznego API serwera transakcyjnego.
Podczas audytu kodu źródłowego systemu wykryto poważną podatność logiczną: endpoint API spłaty raty '/api/v1/pozyczka/splata' weryfikował poprawność podpisu kryptograficznego zlecenia, lecz nie rejestrował unikalnych identyfikatorów zapytań ani czasu ich nadania. W rezultacie, jeżeli nieuczciwy pracownik sieci lub osoba podsłuchująca ruch przechwyciła poprawnie podpisany pakiet zlecenia przelewu na kwotę 500 PLN, mogła wysłać ten sam pakiet dziesięciokrotnie, powodując wielokrotne pobranie środków z konta pożyczkobiorcy bez konieczności łamania szyfrów.
Taka luka stwarza bezpośrednie zagrożenie kradzieży środków oraz paraliżu operacyjnego instytucji finansowej. Zarząd spółki polecił zespołowi inżynierów wdrożenie standardu ochrony przed atakami powtórzeniowymi opartego na połączeniu 128-bitowego kryptograficznego wektora Nonce z krótkim oknem ważności znacznika czasu Timestamp (maksymalnie 60 sekund).
Zespół studentów ma za zadanie zaimplementować mechanizm pamięci podręcznej zużytych wektorów Nonce (Replay Cache) oraz procedurę odrzucania przeterminowanych lub zduplikowanych transakcji. Studenci przygotowują autentyczny komunikat transakcyjny, generują dla niego wektor Nonce i znacznik czasu, podpisują go kodem HMAC, a następnie symulują próbę ponownego wykonania tej samej operacji.
W podsumowaniu studenci analizują optymalizację pamięci podręcznej (usuwanie starych wektorów Nonce po wygaśnięciu okna czasowego) oraz formułują wytyczne dla programistów systemów bankowych i fintech.
Wektor Nonce (Number used Once) jest unikalnym, losowym ciągiem znaków generowanym przez klienta dla każdego pojedynczego żądania. Serwer przechowuje odebrane wartości Nonce w szybkiej pamięci podręcznej (np. w pamięci Redis lub bazie in-memory). Ponowne pojawienie się tego samego identyfikatora jest jednoznacznym dowodem próby ataku powtórzeniowego.
Gdyby stosować wyłącznie wektory Nonce bez znaczników czasu, serwer musiałby przechowywać wszystkie kiedykolwiek użyte wektory w nieskończoność, co doprowadziłoby do przepełnienia pamięci RAM. Wprowadzenie znacznika czasu Timestamp ogranicza czas życia wektora Nonce (np. do 60 sekund). Po upływie 60 sekund żądanie jest odrzucane z powodu przeterminowania, a stary wektor Nonce można bezpiecznie usunąć z bazy.
Poniżej przedstawiono przykładowy widok konsoli serwera demonstrujący realizację pierwszej transakcji oraz zablokowanie natychmiastowej próby powtórzenia:
W systemach rozproszonych kluczowe znaczenie ma synchronizacja czasu serwerów za pomocą protokołu NTP (Network Time Protocol). Jeżeli zegar serwera aplikacji różni się od zegara bramki o więcej niż zdefiniowane okno czasowe, legalne transakcje będą odrzucane jako przeterminowane.
Wektor Nonce musi pochodzić z kryptograficznie bezpiecznego generatora liczb pseudolosowych (CSPRNG, np. '/dev/urandom' lub funkcja 'openssl rand'). Stosowanie przewidywalnych liczników sekwencyjnych (1, 2, 3...) pozwala atakującemu na odgadnięcie kolejnego wektora i przeprowadzenie ataku wyprzedzającego (Race Condition).
Przykładowe wnioski (wzór do sprawozdania): Eksperymentalne badanie podatności transakcji finansowych wykazało, że nawet poprawnie zaszyfrowany i opatrzony kodem HMAC komunikat jest bezbronny wobec ataku powtórzeniowego (Replay Attack), jeżeli nie posiada mechanizmów unikalności czasowej. Wprowadzenie kryptograficznego wektora Nonce weryfikowanego w pamięci podręcznej serwera gwarantuje, że każde żądanie przelewu może zostać zrealizowane dokładnie jeden raz. Zastosowanie znacznika czasu (Timestamp) z rygorystycznym oknem tolerancji (np. 120 sekund) skutecznie chroni bazę danych przed nieograniczonym rozrostem rejestru zużytych identyfikatorów. Połączenie sumy HMAC z parametrami Nonce i Timestamp tworzy kompletny mechanizm zabezpieczający transakcję zarówno przed modyfikacją treści, jak i przed jej ponownym wysłaniem przez oszusta. Zaprojektowana architektura stanowi niezbędny standard we wszystkich nowoczesnych interfejsach API instytucji finansowych i bramek płatniczych.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon4 Sieciowe systemy składowania danych i kontrola przepływu. Efekty uczenia się: W1, W4, U1, U2, U4, K1, K3.
Celem ćwiczenia jest praktyczne opanowanie zasad projektowania bezpiecznej architektury sieciowej oraz logicznej segmentacji strefy danych posiadaczy kart płatniczych (Cardholder Data Environment – CDE) w placówce handlowej zgodnie z rygorystycznymi wymogami międzynarodowego standardu PCI DSS 4.0. Studenci poznają reguły izolacji terminali POS na urządzeniu MikroTik RouterOS.
W trakcie laboratorium zespół konfiguruje dedykowaną wirtualną sieć lokalną (VLAN 30 – Strefa POS), konfiguruje serwer DHCP z restrykcyjnymi parametrami, wdraża reguły zapory sieciowej blokujące jakikolwiek ruch pomiędzy terminalami płatniczymi a stacjami biurowymi lub publiczną siecią Wi-Fi oraz konfiguruje bezpieczny tunel IPsec do centrum autoryzacji płatności. Zadanie kończy się audytem szczelności segmentacji za pomocą skanera Nmap oraz sprawozdaniem technicznym.
Spółdzielnia Handlowa „Społem-Centrum” w Bydgoszczy prowadzi sieć 12 supermarketów spożywczych. W każdym sklepie funkcjonuje od 6 do 10 stanowisk kasowych wyposażonych w stacjonarne terminale płatnicze POS podłączone do sieci przewodowej Ethernet, a także sieć komputerowa biura kierownika oraz bezprzewodowa sieć Wi-Fi dla klientów marketu.
Podczas audytu certyfikującego do standardu PCI DSS audytor bezpieczeństwa organizacji płatniczych Visa/Mastercard stwierdził rażące naruszenie Wymogu 1 („Instalowanie i utrzymywanie zabezpieczeń sieciowych”): terminale płatnicze POS pracowały w tej samej płaskiej podsieci 192.168.1.0/24 co stacje biurowe oraz punkty dostępowe Wi-Fi. W przypadku zainfekowania komputera w biurze trojanem szpiegującym, złośliwe oprogramowanie mogło podsłuchiwać pakiety sieciowe przesyłane z terminali kasowych.
Spółdzielni zagrożono nałożeniem miesięcznych kar finansowych w wysokości kilkunastu tysięcy euro oraz zablokowaniem możliwości akceptowania płatności bezgotówkowych. Zarząd zlecił pilną rekonfigurację routera brzegowego MikroTik RouterOS w celu stworzenia całkowicie odizolowanej strefy CDE.
Zespół studentów ma za zadanie zaimplementować bezpieczną architekturę sieciową na routerze MikroTik. Grupa tworzy odrębny interfejs VLAN 30 dla terminali POS, konfiguruje dedykowaną adresację IP (10.30.0.0/24), wdraża bezwzględną blokadę komunikacji pomiędzy VLAN 30 a pozostałymi sieciami marketu oraz zezwala terminalom wyłącznie na nawiązywanie szyfrowanych połączeń na porty serwerów autoryzacyjnych operatora płatności.
Końcowym etapem jest przeprowadzenie testów penetracyjnych szczelności zapory ze stacji biurowej oraz ze stacji w sieci Wi-Fi, potwierdzających całkowity brak widoczności terminali POS.
Zgodnie ze standardem PCI DSS (Payment Card Industry Data Security Standard) strefa danych posiadaczy kart (CDE) obejmuje wszystkie komponenty sieciowe, serwery i urządzenia, które przechowują, przetwarzają lub przesyłają dane kartowe (numery PAN, daty ważności). Prawidłowa segmentacja sieciowa za pomocą VLAN i reguł zapory ogniowej pozwala na radykalne zawężenie zakresu audytu wyłącznie do wyizolowanego segmentu CDE, obniżając koszty certyfikacji.
W systemie MikroTik RouterOS filtrowanie ruchu pomiędzy sieciami VLAN realizowane jest w łańcuchu 'forward' zapory sieciowej (/ip firewall filter). Kluczowa zasada bezpieczeństwa nakazuje stosowanie polityki 'Default Deny' – najpierw definiuje się precyzyjne reguły zezwalające na niezbędną komunikację biznesową, a na końcu umieszcza się bezwzględną regułę odrzucającą (drop) cały pozostały ruch.
Poniżej przedstawiono listing reguł filtrujących zapory MikroTik zabezpieczających strefę terminali POS zgodnie z PCI DSS:
Nigdy nie zezwalaj urządzeniom w strefie POS na swobodne korzystanie z publicznych serwerów DNS (np. 8.8.8.8). Zapytania DNS powinny być rozwiązywane wyłącznie przez lokalny router lub wyznaczony wewnętrzny serwer DNS w celu zapobiegania atakom zatruwania pamięci podręcznej DNS (DNS Cache Poisoning).
W środowisku sklepowym kable sieciowe łączące terminale kasowe z gniazdami sieciowymi powinny być zabezpieczone przed fizycznym odpięciem, a nieużywane porty w przełącznikach sieciowych muszą być bezwzględnie programowo wyłączone (disabled) lub przypisane do odizolowanego 'czarnego' VLAN-u (tzw. Blackhole VLAN).
Przykładowe wnioski (wzór do sprawozdania): Zaprojektowanie bezpiecznej strefy danych kartowych (CDE) na routerze MikroTik wykazało kluczową rolę segmentacji sieciowej w spełnieniu rygorystycznych wymagań standardu PCI DSS. Fizyczna i logiczna izolacja terminali płatniczych POS w dedykowanym VLAN-ie uniemożliwia podsłuch transmisji przez zainfekowane stacje robocze personelu biurowego. Konfiguracja reguł zapory sieciowej odcinających bezpośredni ruch pomiędzy terminalami a siecią lokalną radykalnie zawęża wektory potencjalnego ataku. Zezwolenie wyłącznie na wychodzący ruch szyfrowany TLS do zautoryzowanych adresów IP centrum autoryzacji kart eliminuje ryzyko wycieku numerów PAN. Wdrożona polityka udowadnia, że precyzyjna separacja ruchu na poziomie przełączników i routerów brzegowych jest najtańszym i najskuteczniejszym środkiem ochrony infrastruktury płatniczej.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Symetryczne i niesymetryczne algorytmy szyfrowania. Architektura PKI i certyfikaty X.509. Efekty uczenia się: W4, U1, U2, U4, K1, K2.
Głównym celem zadania jest opanowanie zaawansowanego mechanizmu wzajemnego uwierzytelniania kryptograficznego mTLS (Mutual TLS / Two-Way SSL) w architekturze komunikacji maszyna-maszyna (M2M / B2B). Studenci poznają zasady konfiguracji serwera WWW Apache oraz klienta sieciowego cURL, w którym nie tylko serwer uwierzytelnia się przed klientem, lecz także klient musi przedstawić ważny certyfikat cyfrowy podpisany przez zaufany urząd CA.
W toku laboratorium zespół tworzy infrastrukturę certyfikatów dla platformy B2B, konfiguruje dyrektywy SSLVerifyClient oraz SSLCACertificateFile w serwerze Apache, generuje klucze i certyfikaty dla stacji klienta oraz przeprowadza testy dostępu. Studenci weryfikują zachowanie serwera w przypadku próby połączenia bez certyfikatu klienta lub z certyfikatem niepodpisanym przez uprawnione CA. Wynikiem prac jest w pełni zabezpieczony interfejs API oraz sprawozdanie techniczne.
Spółka FinTech „Pay-Gate Polska” w Warszawie świadczy usługi pośrednictwa płatności hurtowych dla platform e-commerce i sieci handlowych. Komunikacja pomiędzy serwerami sklepów internetowych a interfejsem API bramki płatniczej ('https://api.paygate.local/transakcje') służy do inicjowania przelewów wielotysięcznych kwot oraz pobierania raportów rozliczeniowych.
Dotychczasowe zabezpieczenie API opierało się wyłącznie na standardowym szyfrowaniu HTTPS (uwierzytelnienie jednostronne serwera) oraz tokenie Bearer API-Key przesyłanym w nagłówku żądania HTTP. W trakcie audytu bezpieczeństwa wykazano, że w przypadku wycieku tokena API (np. w wyniku błędu programisty publikującego kod w repozytorium GitHub), osoba trzecia może swobodnie łączyć się z API bramki z dowolnego miejsca na świecie i wykonywać operacje finansowe w imieniu sklepu.
Główny architekt bezpieczeństwa podjął decyzję o wdrożeniu wzajemnego uwierzytelniania mTLS dla wszystkich partnerów B2B. Od tej pory serwer bramki płatniczej akceptuje wyłącznie połączenia TCP od klientów, którzy w trakcie negocjacji TLS Handshake przedstawią ważny certyfikat klienta X.509 wystawiony bezpośrednio przez prywatny Urząd Certyfikacji operatora płatności.
Zespół studentów wciela się w inżynierów bezpieczeństwa wdrażających mTLS w środowisku Linux / Apache. Grupa ma za zadanie wygenerować certyfikat urzędu CA bramki, skonfigurować wirtualnego hosta Apache z wymogiem 'SSLVerifyClient require', wygenerować certyfikat kliencki dla sklepu partnerskiego oraz przetestować połączenia za pomocą narzędzia cURL z użyciem certyfikatów.
Końcowym etapem jest udowodnienie, że nawet posiadanie poprawnego adresu URL i tokena Bearer nie pozwala na nawiązanie połączenia bez fizycznego posiadania powiązanego klucza prywatnego i certyfikatu klienta.
W standardowym protokole HTTPS (One-Way TLS) serwer przesyła swój certyfikat do klienta, a przeglądarka weryfikuje jego ważność. W architekturze mTLS (Mutual TLS) po zweryfikowaniu serwera, serwer wysyła komunikat 'Certificate Request', żądając od klienta przesłania jego certyfikatu. Połączenie zostaje nawiązane wyłącznie wtedy, gdy obie strony pomyślnie zweryfikują certyfikaty partnera.
Dyrektywa 'SSLVerifyClient require' w serwerze Apache wymusza, aby każdy klient bezwzględnie przedstawił certyfikat. Jeżeli klient nie posiada certyfikatu lub certyfikat jest nieważny, negocjacja TLS zostaje natychmiast przerwana na poziomie warstwy transportowej, zanim jakiekolwiek żądanie HTTP dotrze do aplikacji webowej.
Poniżej przedstawiono listing testów weryfikacyjnych za pomocą narzędzia cURL demonstrujący odrzucenie połączenia bez certyfikatu oraz sukces z poprawnym certyfikatem mTLS:
Certyfikat klienta zawiera atrybut 'extendedKeyUsage = clientAuth' (OID: 1.3.6.1.5.5.7.3.2), podczas gdy certyfikat serwera posiada 'serverAuth' (OID: 1.3.6.1.5.5.7.3.1). Rozróżnienie to zapobiega omyłkowemu użyciu certyfikatu klienckiego do podszywania się pod serwer API.
W środowiskach produkcyjnych do zarządzania certyfikatami partnerów B2B stosuje się dedykowane serwery pośredniczące (Reverse Proxy / API Gateway, np. Nginx, Envoy, Kong), które dokonują terminacji mTLS i przekazują tożsamość klienta (wyciągniętą z certyfikatu) do aplikacji wewnętrznej w bezpiecznych nagłówkach HTTP.
Przykładowe wnioski (wzór do sprawozdania): Wdrożenie wzajemnego uwierzytelniania mTLS (Mutual TLS) w integracji B2B zapewniło najwyższy dostępny poziom bezpieczeństwa kryptograficznego w komunikacji maszynowej pomiędzy sklepem a operatorem płatności. W przeciwieństwie do standardowego TLS, weryfikacja certyfikatów X.509 po obu stronach połączenia całkowicie eliminuje zagrożenie ze strony nieautoryzowanych klientów API i fałszywych serwerów pośredniczących. Mechanizm mTLS uniezależnia bezpieczeństwo sesji od statycznych kluczy API przekazywanych w nagłówkach HTTP, które są podatne na przechwycenie w logach proxy. Weryfikacja tożsamości klienta realizowana jest na poziomie warstwy kryptograficznej handshake'u TLS, zanim żądanie trafi do logiki aplikacji webowej. Rozwiązanie to stanowi współczesny kanon bezpieczeństwa systemów finansowych, bankowości otwartej (Open Banking) oraz architektury Zero Trust.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Symetryczne i niesymetryczne algorytmy szyfrowania. Podpisy cyfrowe. Efekty uczenia się: W3, W4, U1, U2, U4, K1, K3.
Celem zadania jest praktyczne wdrożenie kryptograficznego mechanizmu zapewnienia niezaprzeczalności (Non-repudiation) oraz autentyczności w procesie autoryzacji bankowych zleceń płatniczych wysokiej wartości. Studenci poznają zasady składania i automatycznej weryfikacji podpisów cyfrowych na ustrukturyzowanych komunikatach finansowych (format XML/JSON/tekstowy) za pomocą otwartego standardu OpenPGP (GnuPG).
W trakcie laboratorium zespół analizuje prawne i techniczne skutki podpisania zlecenia płatniczego kluczem prywatnym głównego księgowego lub dyrektora finansowego. Studenci przygotowują zlecenie przelewu wielkokwotowego, podpisują je cyfrowo, tworzą skrypt automatycznej walidacji po stronie serwera bankowego oraz symulują atak polegający na podmianie numeru rachunku docelowego lub wyparciu się wysłania zlecenia. Ćwiczenie kończy się sporządzeniem sprawozdania technicznego.
Przedsiębiorstwo Przemysłowe „Metal-Hurt” w Dąbrowie Górniczej realizuje cotygodniowe płatności za surowce hutnicze na kwoty sięgające od kilkuset tysięcy do kilku milionów złotych. Zlecenia przelewów są generowane w systemie ERP i przesyłane do banku korporacyjnego za pośrednictwem dedykowanego modułu integracji.
W sektorze finansowym odnotowano rosnącą liczbę wyrafinowanych ataków typu BEC (Business Email Compromise) oraz CEO Fraud, w których przestępcy podszywają się pod członków zarządu i nakazują wykonanie pilnych przelewów na podstawione konta słupów. Tradycyjne wiadomości e-mail lub zwykłe pliki z dyspozycjami przelewu nie posiadają mocy prawnej ani technicznej gwarancji integralności.
Zarząd banku korporacyjnego wprowadził rygorystyczną procedurę dla wszystkich przelewów przekraczających kwotę 100 000 PLN: każda dyspozycja musi zostać podpisana cyfrowo kluczem prywatnym co najmniej dwóch uprawnionych dysponentów (zasada czterech oczu – Dual Control) z wykorzystaniem kluczy RSA 4096-bit w standardzie OpenPGP.
Zespół studentów wciela się w administratorów systemu bankowości korporacyjnej. Uczestnicy generują pary kluczy dla Głównego Księgowego oraz Dyrektora Finansowego, przygotowują komunikat przelewu na kwotę 450 000 PLN, składają podpisy cyfrowe, a następnie po stronie serwera bankowego implementują skrypt weryfikujący poprawność obu podpisów przed zaksięgowaniem środków.
W fazie testów zespół bada reakcję systemu na próbę modyfikacji numeru rachunku dostawcy oraz analizuje dlaczego dyrektor finansowy nie może wyprzeć się zatwierdzenia dyspozycji (zasada niezaprzeczalności).
Zasada niezaprzeczalności (Non-repudiation) oznacza, że podmiot, który złożył podpis cyfrowy pod dokumentem, nie może skutecznie twierdzić, że dokumentu nie sporządził lub że jego treść była inna. Wynika to z faktu, że podpis cyfrowy mógł zostać wygenerowany wyłącznie przy użyciu unikalnego klucza prywatnego, który znajduje się pod wyłączną kontrolą dysponenta.
Zastosowanie podpisów odłączonych (Detached Signatures) jest standardem w automatycznych systemach bankowych. Pozwala na zachowanie oryginalnego pliku transakcyjnego w niezmienionej strukturze (np. format ISO 20022 XML), a pliki podpisów (np. '.sig1', '.sig2') są przesyłane jako niezależne metadane autoryzacyjne.
Poniżej przedstawiono przykładowy widok konsoli serwera bankowego podczas weryfikacji podpisów cyfrowych pod zleceniem wielkokwotowym:
W środowiskach korporacyjnych klucze prywatne osób upoważnionych do dysponowania środkami wielkokwotowymi nie powinny znajdować się bezpośrednio na dyskach twardych laptopów, lecz na kryptograficznych kartach mikroprocesorowych lub tokenach USB zgodnych ze standardem PKCS#11 (np. YubiKey z obsługą OpenPGP).
Klucz prywatny na tokenie sprzętowym nie może zostać skopiowany ani wyeksportowany – operacja podpisywania skrótu transakcji odbywa się fizycznie wewnątrz mikroprocesora tokena po podaniu kodu PIN.
Przykładowe wnioski (wzór do sprawozdania): Zastosowanie cyfrowych podpisów OpenPGP do autoryzacji transakcji wielkokwotowych zapewniło pełną niezaprzeczalność i integralność przesyłanych zleceń finansowych. Złożenie podpisu kryptograficznego kluczem prywatnym dyrektora finansowego trwale wiąże tożsamość dysponenta środków z dokładną kwotą i numerem rachunku docelowego przelewu. Niemożność wyparcia się tak autoryzowanej transakcji wyklucza spory prawne i eliminuje ryzyko nadużyć ze strony nieuczciwych pracowników instytucji bankowej. Weryfikacja sygnatury w procesie automatycznego przetwarzania zleceń pozwala na natychmiastowe odrzucenie jakichkolwiek prób manipulacji plikami wsadowymi przelewów w systemie bankowym. Projekt udowodnił, że kryptografia klucza publicznego stanowi jedyny pewny matematyczny fundament potwierdzania woli w obrocie gospodarczym dużej skali.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Autoryzacja i uwierzytelnianie w systemach komputerowych. Efekty uczenia się: W1, W3, U1, U3, K1, K2.
Celem ćwiczenia jest dogłębna analiza mechanizmów kryptograficznych oraz architektury bezpieczeństwa nowoczesnych systemów płatności mobilnych opartych na dynamicznych kodach jednorazowych (studium przypadku polskiego standardu płatności BLIK). Studenci poznają zasady generowania tokenów jednorazowych o bardzo krótkim czasie życia (120 sekund) oraz model autoryzacji poza pasmem (Out-of-Band Push Notification).
W toku laboratorium zespół analizuje model trójstronny (Klient mobilny – Terminal/Sklep – Centralny System Płatności), symuluje procedurę generowania i walidacji 6-cyfrowego kodu transakcyjnego w środowisku laboratoryjnym oraz bada podatności socjotechniczne (metoda oszustwa 'na BLIK-a' na portalach społecznościowych). Studenci projektują mechanizmy obronne wymuszające weryfikację kontekstu transakcji (odbiorca, kwota) na ekranie telefonu. Zadanie wieńczy raport techniczny.
Komenda Powiatowa Policji w Chrzanowie odnotowuje lawinowy wzrost liczby zgłoszeń dotyczących cyberoszustw metodą 'na BLIK-a'. Sprawcy przejmują konta użytkowników na popularnych portalach społecznościowych, a następnie podszywając się pod znajomych lub członków rodziny, wysyłają wiadomości z prośbą o pilne pożyczenie drobnej kwoty i podanie 6-cyfrowego kodu płatności.
Wielu poszkodowanych bezrefleksyjnie generuje kod w swojej aplikacji bankowej i przesyła go na czacie, a następnie zatwierdza powiadomienie autoryzacyjne w telefonie, nie czytając treści komunikatu. Przestępcy natychmiast wypłacają gotówkę z bankomatu na drugim końcu Polski lub opłacają zakupy w zagranicznych sklepach internetowych.
Wydział do Walki z Cyberprzestępczością we współpracy ze środowiskiem akademickim zainicjował projekt badawczo-edukacyjny mający na celu precyzyjne przeanalizowanie modelu kryptograficznego płatności kodowych oraz wskazanie, dlaczego sam mechanizm technologiczny jest bezpieczny, a słabym ogniwem pozostaje brak weryfikacji danych kontekstowych przez człowieka.
Zespół studentów ma za zadanie zaimplementować uproszczony symulator cyklu życia kodu jednorazowego w środowisku Linux: wygenerowanie losowego 6-cyfrowego tokena powiązanego z sesją bankową, ustawienie 120-sekundowego licznika ważności w pamięci podręcznej, obsłużenie żądania autoryzacji z terminala oraz wygenerowanie komunikatu PUSH zawierającego kwotę i dokładną lokalizację punktu akceptacji.
W podsumowaniu studenci analizują dlaczego standard BLIK nie ujawnia sprzedawcy numeru karty płatniczej ani danych rachunku bankowego (tokenizacja jednorazowa) oraz formułują wytyczne interfejsu użytkownika (UI/UX) utrudniające oszustwa socjotechniczne.
Architektura płatności typu BLIK opiera się na jednorazowym tokenie numerycznym o krótkim czasie życia (120 sekund). Sam 6-cyfrowy kod nie niesie w sobie żadnych informacji o kliencie, stanie konta ani numerze rachunku – jest jedynie dynamicznym kluczem indeksującym sesję w pamięci centralnego systemu płatności.
Kluczowym elementem bezpieczeństwa jest to, że wpisanie kodu w terminalu sklepowym lub bankomacie nie powoduje obciążenia konta. Wpisanie kodu inicjuje jedynie wysłanie żądania autoryzacji do telefonu właściciela konta odrębnym, bezpiecznym kanałem TLS (Out-of-Band). Dopiero świadome kliknięcie 'Potwierdź' i autoryzacja biometryczna (odcisk palca / FaceID) lub PIN w aplikacji bankowej finalizuje transakcję.
Poniżej przedstawiono przykładowy widok konsoli symulujący cykl życia kodu mobilnego, autoryzację z terminala oraz zablokowanie kodu przeterminowanego:
W analizie bezpieczeństwa należy podkreślić, że kody 6-cyfrowe posiadają przestrzeń miliona kombinacji ($10^6$). Przy 120-sekundowym oknie ważności oraz ograniczeniu liczby błędnych prób do 3 na terminal, atak siłowy (brute-force) na odgadnięcie aktywnego kodu w skali kraju jest matematycznie niewykonalny.
Wszystkie udane oszustwa na kody mobilne wynikają wyłącznie z manipulacji socjotechnicznej (Inżynieria Społeczna), w której ofiara sama dobrowolnie podaje kod przestępcy i bez czytania potwierdza powiadomienie w telefonie.
Przykładowe wnioski (wzór do sprawozdania): Analiza architektury płatności mobilnych typu BLIK wykazała, że generowanie 6-cyfrowych tokenów jednorazowych o krótkim czasie życia (120 sekund) skutecznie chroni dane karty płatniczej przed ujawnieniem sprzedawcy. Rozdzielenie procesu podania kodu w terminalu lub sklepie od ostatecznej autoryzacji transakcji w aplikacji bankowej wprowadza kluczowy element dwukanałowości (Out-of-Band). Użytkownik ma możliwość zweryfikowania kwoty i odbiorcy przelewu na ekranie własnego smartfona zanim zatwierdzi operację kodem PIN lub biometrią. Zbadane scenariusze oszustw socjotechnicznych (tzw. metoda 'na wnuczka' lub 'na znajomego z komunikatora') dowodzą, że nawet doskonały kryptograficznie system może zostać skompromitowany przez manipulację psychologiczną posiadacza konta. Podstawowym wnioskiem jest konieczność nieustannego edukowania konsumentów w zakresie uważnego odczytywania komunikatów autoryzacyjnych w aplikacji mobilnej.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Symetryczne i niesymetryczne algorytmy szyfrowania. Efekty uczenia się: W1, W2, U1, U3, U4, K1, K3.
Celem ćwiczenia jest praktyczne opanowanie koncepcji tokenizacji kryptograficznej (Tokenization) jako podstawowej metody redukcji ryzyka wycieku wrażliwych danych kart płatniczych (numerów PAN – Primary Account Number) w aplikacjach internetowych i usługach subskrypcyjnych (SaaS). Studenci poznają zasady zamiany poufnego numeru karty na losowy surogat (token) zachowujący format danych (Format-Preserving Encryption).
W trakcie laboratorium zespół bada architekturę bezpiecznego repozytorium kart (Card Vault), projektuje bazę danych oddzielającą tokeny od zaszyfrowanych numerów kart, implementuje procedurę bezpiecznego obciążania subskrypcji za pomocą tokena bez konieczności przechowywania kodów CVV2/CVC2 oraz analizuje wymogi standardu PCI DSS dotyczące wyłączenia serwerów sklepu ze strefy CDE. Zadanie kończy się raportem technicznym.
Platforma Edukacyjna „Edu-Stream” w Krakowie świadczy usługi dostępu do kursów online i wideolekcji w miesięcznym modelu abonamentowym (SaaS). Subskrybenci rejestrują swoje karty płatnicze, z których pierwszego dnia każdego miesiąca pobierana jest automatyczna opłata w wysokości 49 PLN.
W początkowej wersji aplikacji programiści zapisywali pełne 16-cyfrowe numery kart płatniczych (PAN), daty ważności oraz 3-cyfrowe kody CVV2 bezpośrednio w tabeli użytkowników w bazie danych MySQL. Podczas audytu bezpieczeństwa audytor poinformował zarząd, że przechowywanie kodów CVV2 jest bezwzględnie zakazane przez standard PCI DSS (Wymóg 3.2), a wyciek bazy danych doprowadziłby do gigantycznych kar finansowych i utraty reputacji.
Kierownictwo platformy podjęło decyzję o wdrożeniu tokenizacji kartowej w oparciu o certyfikowany skarbiec kart (Secure Card Vault). W myśl nowej architektury serwery platformy Edu-Stream nigdy nie mają kontaktu z numerem karty – dane karty są przesyłane bezpośrednio z przeglądarki klienta do skarbca płatniczego, a do bazy platformy trafia wyłącznie unikalny, losowy token 'tok_2026_98124a1b' oraz bezpieczna maska karty ('XXXX XXXX XXXX 1234').
Zespół studentów wciela się w architektów bezpieczeństwa realizujących to zadanie w środowisku laboratoryjnym. Grupa projektuje architekturę skarbca kart, implementuje procedurę generowania tokenów zachowujących format, tworzy skrypt comiesięcznego cyklicznego obciążania subskrypcji za pomocą samego tokena oraz demonstruje, że ewentualny wyciek bazy danych platformy nie ujawnia żadnych danych kartowych.
Podsumowaniem zadania jest analiza prawna odpowiedzialności administratora danych w świetle RODO oraz korzyści biznesowych wynikających ze zwolnienia infrastruktury z rygorystycznych kontroli PCI DSS.
Tokenizacja polega na zastąpieniu wrażliwej danej (np. 16-cyfrowego numeru PAN) losowym identyfikatorem (tokenem), który nie posiada żadnej wartości kryptograficznej ani matematycznego związku z oryginalną daną. W przeciwieństwie do szyfrowania (gdzie algorytm matematyczny pozwala na odwrócenie operacji przy użyciu klucza), z tokena nie da się wyliczyć numeru karty – powiązanie istnieje wyłącznie w chronionej bazie skarbca (Token Vault).
Zgodnie ze standardem PCI DSS podmiot, który korzysta z zewnętrznej tokenizacji i nie przechowuje, nie przetwarza ani nie przesyła numerów kart w swojej infrastrukturze, kwalifikuje się do najprostszego kwestionariusza zgodności (SAQ A). Zmniejsza to liczbę wymaganych kontroli bezpieczeństwa z kilkuset do zaledwie kilkunastu, oszczędzając przedsiębiorstwu dziesiątki tysięcy złotych rocznie.
Poniżej przedstawiono przykładowy widok konsoli serwera demonstrujący procedurę tokenizacji karty oraz automatyczne rozliczenie subskrypcji:
Kody bezpieczeństwa kart CVV2/CVC2 (trzy cyfry na odwrocie karty) mogą być przetwarzane wyłącznie w czasie rzeczywistym podczas pierwszej autoryzacji transakcji. Standard PCI DSS bezwzględnie zakazuje przechowywania kodów CVV2 w jakiejkolwiek formie (nawet zaszyfrowanej) po zakończeniu autoryzacji.
Do wyświetlania informacji o karcie w panelu klienta stosuje się tzw. maskowanie (Truncation / Masking). Dopuszczalne jest pokazywanie maksymalnie pierwszych 6 cyfr (BIN) oraz ostatnich 4 cyfr numeru karty (np. '4111 11XX XXXX 1234'), co pozwala użytkownikowi rozpoznać swoją kartę bez ujawniania pełnego numeru PAN.
Przykładowe wnioski (wzór do sprawozdania): Zastosowanie technologii tokenizacji w modelu płatności subskrypcyjnych pozwoliło na całkowite wyeliminowanie konieczności przechowywania wrażliwych numerów kart płatniczych (PAN) w bazie danych sprzedawcy. Zastąpienie rzeczywistych danych karty przez losowy identyfikator cyfrowy (token) sprawia, że w przypadku ewentualnego włamania do sklepu internetowego napastnik nie uzyskuje żadnych danych zdatnych do wykonania fraudu. Przechowywanie i przetwarzanie surowych numerów kart zostaje całkowicie oddelegowane do certyfikowanego operatora płatności posiadającego poświadczenie PCI DSS poziomu pierwszego. Rozwiązanie to drastycznie obniża koszty audytu zgodności sklepu internetowego, zawężając zakres obowiązków regulacyjnych (PCI DSS Scope Reduction). Tokenizacja stanowi obecnie najbezpieczniejszy wzorzec architektoniczny w obsłudze automatycznych płatności cyklicznych w modelu SaaS.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Kon2 Warunki zapewnienia poufności i autentyczności informacji. Kon3 Architektura PKI i certyfikaty X.509. Efekty uczenia się: W1, W4, U1, U3, K1, K2.
Głównym celem zadania jest praktyczne zrozumienie wektorów ataków pośrednika (Man-in-the-Middle – MitM) na sesje kryptograficzne portali transakcyjnych oraz opanowanie mechanizmów obronnych po stronie serwera i klienta. Studenci badają techniki przechwytywania sesji oparte na fałszowaniu certyfikatów SSL/TLS (podstawianie certyfikatów samopodpisanych lub rogue CA) oraz próbach usuwania szyfrowania (SSL Stripping).
W toku laboratorium zespół analizuje mechanizmy detekcji niezgodności certyfikatów, bada łańcuch walidacji X.509, konfiguruje ochronę przed podszywaniem się za pomocą mechanizmu przypinania kluczy lub certyfikatów (Certificate / Public Key Pinning) oraz weryfikuje odporność aplikacji klienckiej za pomocą narzędzi wiersza poleceń OpenSSL i cURL. Studenci opracowują instrukcje reagowania na incydenty kryptograficzne. Prace kończą się przygotowaniem sprawozdania.
Dom Maklerski „Inwestor-Online” w Katowicach udostępnia klientom platformę transakcyjną do handlu akcjami, obligacjami skarbowymi i kontraktami terminowymi na Giełdzie Papierów Wartościowych w Warszawie. Klienci logują się do portalu ze stacji roboczych oraz urządzeń mobilnych korzystających z różnorodnych sieci dostępowych, w tym otwartych sieci Wi-Fi w kawiarniach i hotelach.
Dział bezpieczeństwa banku maklerskiego zaobserwował zgłoszenia od inwestorów, którzy łącząc się z publicznych punktów dostępowych, otrzymywali w przeglądarkach ostrzeżenia o niezaufanym certyfikacie cyfrowym lub zauważali, że ikona kłódki znikała z paska adresu. Analiza techniczna wykazała, że cyberprzestępcy w otwartych sieciach Wi-Fi uruchomili złośliwe punkty dostępowe (tzw. Evil Twin) oraz oprogramowanie sslstrip i mitmproxy, próbując przechwycić poświadczenia logowania do rachunków maklerskich.
Kierownictwo domu maklerskiego podjęło decyzję o pilnym wzmocnieniu mechanizmów obronnych platformy. Plan obejmuje wdrożenie rygorystycznej polityki HTTP Strict Transport Security (HSTS) z deklaracją Preload, implementację mechanizmu przypinania klucza publicznego (Public Key Pinning) w dedykowanych aplikacjach klienckich oraz opracowanie procedury automatycznego ostrzegania przed fałszywymi certyfikatami.
Zespół studentów wciela się w audytorów bezpieczeństwa kryptoanalitycznego. Grupa ma za zadanie zasymulować środowisko ataku MitM poprzez wygenerowanie fałszywego certyfikatu podszywającego się pod dom maklerski, przetestowanie zachowania klienta sieciowego cURL z poprawną oraz sfałszowaną konfiguracją certyfikatów, a następnie wdrożenie mechanizmu weryfikacji skrótu klucza publicznego (SPKI Pinning).
Końcowym efektem prac jest sformułowanie procedur bezpieczeństwa dla inwestorów oraz technicznych wytycznych ochrony aplikacji finansowych przed manipulacjami w warstwie transportowej.
Atak typu Man-in-the-Middle (MitM) polega na przechwyceniu ruchu pomiędzy klientem a serwerem przez węzeł pośredniczący, który deszyfruje, podgląda, modyfikuje i ponownie szyfruje pakiety. Aby atak był skuteczny w sesjach HTTPS, napastnik musi skłonić przeglądarkę ofiary do zaakceptowania sfałszowanego certyfikatu cyfrowego.
Mechanizm przypinania klucza publicznego (Public Key Pinning / SPKI Pinning) jest jedną z najsilniejszych metod obrony przed atakami MitM. Aplikacja klienta posiada na stałe zaszyty skrót SHA-256 klucza publicznego serwera. Nawet jeżeli napastnik zdoła przekonać system operacyjny do zaufania fałszywemu urzędowi CA, aplikacja i tak przerwie połączenie, ponieważ klucz publiczny w sfałszowanym certyfikacie nie będzie zgadzał się z przypiętym pinem.
Poniżej przedstawiono przykładowy widok konsoli demonstrujący udaremnienie ataku MitM przez weryfikację przypiętego klucza publicznego (--pinnedpubkey) w narzędziu cURL:
Zwróć uwagę, że przypinanie klucza publicznego (SPKI Pinning) jest znacznie bezpieczniejsze i elastyczniejsze niż przypinanie całego certyfikatu. Pozwala ono na wymianę certyfikatu po upływie terminu ważności (np. co rok) bez konieczności aktualizacji aplikacji klienckiej, pod warunkiem, że nowy certyfikat zostanie wygenerowany w oparciu o tę samą parę kluczy RSA/ECC.
W przypadku aplikacji przeglądarkowych główną obroną przed manipulacjami w warstwie transportowej jest nagłówek HSTS (HTTP Strict Transport Security) z długim okresem max-age oraz zgłoszenie domeny do listy HSTS Preload wbudowywanej w silniki przeglądarek Chrome, Firefox i Safari.
Przykładowe wnioski (wzór do sprawozdania): Badanie podatności portalu transakcyjnego na ataki pośrednika (Man-in-the-Middle) dowiodło, że samo szyfrowanie TLS nie chroni użytkownika, jeżeli zignoruje on ostrzeżenia o niezgodności certyfikatu cyfrowego. Zastosowanie techniki przypinania certyfikatów (Certificate Pinning) w dedykowanych aplikacjach klienckich skutecznie uniemożliwia podsłuch nawet w przypadku zainstalowania fałszywego urzędu CA w systemie użytkownika. Wdrożenie publicznych rejestrów Certificate Transparency (CT) pozwala zespołowi bezpieczeństwa instytucji finansowej na natychmiastowe wykrycie nieuprawnionych certyfikatów wystawionych przez skompromitowane centra certyfikacji. Dodanie rekordu DNS CAA (Certification Authority Authorization) precyzyjnie wskazuje, które podmioty są uprawnione do generowania certyfikatów dla domeny bankowej. Wielowarstwowa ochrona integralności certyfikatów stanowi kluczowy filar obrony przed wyrafinowanymi atakami cyberprzestępczymi.
Kon2 Podstawy kryptograficznej ochrony informacji. Kon3 Podpisy cyfrowe i funkcje skrótu. Efekty uczenia się: W1, W3, U1, U2, U3, K1, K3.
Głównym celem zadania jest praktyczne opanowanie koncepcji budowy nienaruszalnych kryptograficznie dzienników zdarzeń transakcyjnych (Tamper-evident Audit Logs) opartych na strukturze łańcucha skrótów (Hash Chain) – fundamentu technologii rejestrów rozproszonych i systemów audytu finansowego. Studenci dowiadują się, jak zagwarantować, że żadne zdarzenie w logu nie może zostać usunięte, zmodyfikowane ani dopisane wstecz bez natychmiastowego zerwania łańcucha kryptograficznego.
W toku laboratorium zespół projektuje strukturę rekordu transakcyjnego powiązanego ze skrótem SHA-256 rekordu poprzedniego, implementuje skrypt generujący kolejne bloki dziennika zdarzeń, tworzy procedurę automatycznej weryfikacji spójności całego łańcucha oraz symuluje próbę zatarcia śladów nieautoryzowanej transakcji przez nieuczciwego administratora. Studenci analizują normatywne wymogi stawiane ścieżkom audytowym (Audit Trail) w prawie bankowym i RODO. Zadanie kończy się opracowaniem raportu technicznego.
Krajowa Izba Rozliczeniowa i Instytucja Płatnicza „Szybki-Przelew” w Łodzi obsługuje transakcje bramkowe dla kilkuset podmiotów gospodarczych. Wszelkie operacje obciążenia i uznania rachunków muszą być rejestrowane w dzienniku audytowym systemu, stanowiącym podstawę rozliczeń finansowych oraz dowód w sprawach reklamacyjnych.
Wewnętrzna kontrola bezpieczeństwa wykazała, że tradycyjne logi transakcyjne zapisywane są w zwykłym pliku tekstowym na serwerze Linux ('/var/log/transakcje.log'). Administrator posiadający uprawnienia roota lub złośliwy trojan, który przejął uprawnienia systemowe, może bez trudu otworzyć ten plik w edytorze tekstowym, zmodyfikować kwotę przelewu, podmienić numer konta lub usunąć wpisy o nieautoryzowanych operacjach, zacierając wszelkie ślady przestępstwa.
Inspektor nadzoru finansowego zażądał pilnego wdrożenia kryptograficznego mechanizmu nienaruszalności dziennika zdarzeń (Tamper-evident Audit Trail). Każdy nowy rekord logu musi zawierać kryptograficzny skrót (SHA-256) poprzedniego wpisu, tworząc nieprzerwany łańcuch powiązań blokowych, w którym zmiana choćby jednego bajtu w historii unieważnia wszystkie kolejne wpisy.
Zespół studentów ma za zadanie zaimplementować generator łańcucha skrótów (Hash Chain) w powłoce Linux. Grupa tworzy początkowy blok zerowy (Genesis Block), generuje sekwencję 10 transakcji powiązanych kryptograficznie, implementuje skrypt audytorski weryfikujący poprawność łańcucha, a następnie symuluje próbę fałszerstwa archiwalnego wpisu i dokumentuje moment wykrycia naruszenia spójności.
W podsumowaniu studenci analizują jak technologia łańcucha skrótów chroni organizację przed nadużyciami personelu uprzywilejowanego oraz porównują to rozwiązanie z technologią Blockchain.
Struktura łańcucha skrótów (Hash Chain) gwarantuje właściwość Tamper-Evidence (widoczność manipulacji). Każdy rekord n zawiera skrót rekordu n-1. Jeżeli ktokolwiek zmieni treść rekordu n-1, jego skrót ulegnie całkowitej zmianie (efekt lawinowy), co spowoduje natychmiastową niezgodność z wartością zapisaną w rekordzie n, a w konsekwencji unieważni wszystkie kolejne bloki w łańcuchu.
Aby napastnik mógł skutecznie sfałszować wpis w środku łańcucha, musiałby przeliczyć na nowo skróty dla wszystkich kolejnych transakcji aż do końca pliku. W systemach produkcyjnych przed takim scenariuszem chroni regularne kotwiczenie (Anchoring / Timestamping) skrótu ostatniego bloku w niezależnym repozytorium zewnętrznym (np. w publicznym blockchainie lub serwerze znacznika czasu RFC 3161).
Poniżej przedstawiono przykładowy widok konsoli serwera demonstrujący procedurę weryfikacji nienaruszonego łańcucha oraz wykrycie próby sfałszowania historii transakcji:
W systemach o najwyższym reżimie prawnym (np. w bankach centralnych i izbach rozliczeniowych) nienaruszalne dzienniki zdarzeń są dodatkowo zapisywane na nośnikach pamięci masowej typu WORM (Write Once, Read Many). Technologia ta na poziomie sprzętowym uniemożliwia fizyczne nadpisanie lub skasowanie raz zapisanego sektora dysku.
W sprawozdaniu porównaj prosty łańcuch skrótów (Hash Chain) ze strukturą drzewa Merkle'a (Merkle Tree, omawianą w Laboratorium 6). Drzewa Merkle'a pozwalają na błyskawiczne udowodnienie obecności pojedynczej transakcji w bloku bez konieczności skanowania całego pliku dziennika.
Przykładowe wnioski (wzór do sprawozdania): Implementacja kryptograficznego łańcucha skrótów (Hash Chain) w dzienniku transakcyjnym wykazała możliwość stworzenia w pełni nienaruszalnego rejestru audytowego (Tamper-evident Audit Log). Powiązanie każdego nowego wpisu ze skrótem SHA-256 poprzedniego rekordu sprawia, że jakakolwiek próba usunięcia lub zafałszowania historycznej transakcji powoduje natychmiastowe rozerwanie spójności całego łańcucha. Zastosowanie tej techniki uniemożliwia zacieranie śladów nieuprawnionych operacji finansowych nawet przez użytkowników posiadających najwyższe uprawnienia administracyjne do bazy danych. Cykliczne publikowanie skrótu końcowego (Root Hash) w zewnętrznym, niezależnym repozytorium gwarantuje niezaprzeczalność stanu bazy w określonym punkcie czasu. Opracowane rozwiązanie stanowi ekonomiczny i elegancki odpowiednik technologii rozproszonych rejestrów, znajdując szerokie zastosowanie w audycie systemów bankowych i giełdowych.