Token JWT vs certyfikat - który klucz otwiera KSeF?
Tekst opracowany z wykorzystaniem sztucznej inteligencji. Zasady i ograniczenia
Autoryzacja w ramach API KSeF 2.0 opiera się na wielopoziomowym systemie weryfikacji tożsamości podatnika, zarządzanym przez Centrum Informatyki Resortu Finansów. W przeciwieństwie do uproszczonych metod znanych z wersji testowych, środowisko produkcyjne wymaga stosowania precyzyjnych narzędzi kryptograficznych o określonym cyklu życia. Powszechnym błędem jest założenie, że certyfikat kwalifikowany służy do każdorazowego podpisywania sesji. W rzeczywistości certyfikat jest wykorzystywany głównie do nawiązania bezpiecznego połączenia i wygenerowania tokenów sesyjnych, które mają rygorystyczne ograniczenia czasowe.
Zarządzanie dostępem do systemu opiera się na dwóch rodzajach tokenów: accessToken oraz refreshToken. Token dostępowy (accessToken) posiada okres ważności wynoszący dokładnie 10 min, po czym wygasa bezpowrotnie. Token odświeżający (refreshToken) pozwala na przedłużenie sesji przez okres 7 dni bez konieczności ponownego użycia certyfikatu kwalifikowanego lub Profilu Zaufanego. Sam certyfikat kwalifikowany wydawany przez centra certyfikacji ma maksymalny okres ważności wynoszący 2 lata. Potem musisz od nowa przejść proces certyfikacji.
| Mechanizm | Czas życia | Konsekwencja opóźnienia |
|---|---|---|
| accessToken (JWT) | 10 minut | Błąd 401 i konieczność odświeżenia sesji |
| refreshToken | 7 dni | Wygasnięcie sesji i wymóg ponownej autoryzacji certyfikatem |
| Certyfikat kwalifikowany | 2 lata | Unieważnienie dostępu do API i konieczność zakupu nowego klucza |
Scenariusz, w którym token JWT ulega przejęciu przez nieuprawniony podmiot, aktywuje procedury bezpieczeństwa przewidziane przez Ministerstwo Finansów. W przypadku incydentu typu token-wyciek-przestępca, ryzyko dotyczy przede wszystkim nieautoryzowanego wglądu w dane o obrocie firmy. Przykładowo, jeśli duży podmiot (obrót powyżej 200 mln zł) utraci kontrolę nad aktywnym tokenem bez wdrożonej weryfikacji dwuetapowej (2FA), niepowołana osoba może uzyskać dostęp do faktur o wysokiej wartości. W takiej sytuacji Urząd Skarbowy wzywa w 24 h do wyjaśnienia nieprawidłowości w ramach czynności sprawdzających, co wymusza natychmiastowe unieważnienie wszystkich aktywnych uprawnień w module ZAW-FA.
RODO w KSeF - przedsiębiorca nadal jest administratorem danych
RODO (rozporządzenie o ochronie danych osobowych) to zestaw przepisów UE (2016/679) regulujących zasady przetwarzania danych osób fizycznych, który w pełni stosuje się do faktur ustrukturyzowanych zawierających dane osób prowadzących działalność gospodarczą.
Przesyłanie faktur do Krajowego Systemu e-Faktur nie zdejmuje z przedsiębiorcy statusu administratora danych osobowych w rozumieniu art. 4 pkt 7 RODO. Faktura XML zawiera pola uznawane za dane wrażliwe lub chronione, w tym numer NIP, imię i nazwisko przedsiębiorcy oraz szczegółowy adres prowadzenia działalności, który często jest tożsamy z adresem zamieszkania. Integracja KSeF z systemami zewnętrznymi wymusza na właścicielu firmy stosowanie środków technicznych chroniących dane przed wyciekiem. Niezastosowanie się do tych wymogów skutkuje sankcjami finansowymi nakładanymi przez PUODO, gdzie kary mogą sięgać do 4 % obrotu rocznego przedsiębiorstwa.
W celu spełnienia obowiązku informacyjnego wynikającego z art. 13 RODO, przedsiębiorca musi powiadomić kontrahentów o zmianie modelu obiegu dokumentów. Wystarczy wkleić poniższy tekst do regulaminu świadczenia usług lub stopki faktury: "Zgodnie z art. 13 ust. 1 i 2 RODO informujemy, że dane osobowe zawarte w fakturach są przetwarzane w celu realizacji obowiązków podatkowych i archiwizowane w Krajowym Systemie e-Faktur (KSeF). Administratorem danych pozostaje wystawca faktury, natomiast Szef Krajowej Administracji Skarbowej pełni rolę administratora systemu centralnego. Dane będą przechowywane przez okres 10 lat, a odbiorcą danych jest administracja skarbowa w celu weryfikacji rozliczeń podatkowych. Przysługuje Państwu prawo dostępu do danych, ich sprostowania oraz ograniczenia przetwarzania".
- Cel przetwarzania: realizacja obowiązków ustawowych w zakresie dokumentowania sprzedaży i rozliczeń podatkowych.
- Okres przechowywania: obligatoryjne 10 lat w centralnym repozytorium Ministerstwa Finansów.
- Odbiorca danych: Krajowa Administracja Skarbowa (KAS) oraz uprawnione organy kontroli celno-skarbowej.
- Prawo do sprostowania: możliwość wystawienia faktury korygującej w ramach struktur KSeF.
Szyfrowanie XML i pieczęć XAdES - sprawdzamy, czy plik nie był fałszowany
Integralność faktury KSeF opiera się na zaawansowanych algorytmach skrótu, które uniemożliwiają modyfikację dokumentu po jego wysłaniu. Nie podpisujesz gigabajta danych podczas każdej operacji masowej. Podpisuje się skrót SHA-256 (32 bajty) wygenerowany przez KSeF, co znacząco odciąża zasoby procesora po stronie klienta. Przykładowo, wykorzystując narzędzie OpenSSL 3.x, można zweryfikować poprawność skrótu pliku XML komendą openssl dgst -sha256 nazwa_faktury.xml, co pozwala na pewność, że plik nie został uszkodzony w trakcie transmisji.
Wybór między podpisem kwalifikowanym a pieczęcią elektroniczną zależy od skali działalności gospodarczej. Pieczęć elektroniczna charakteryzuje się brakiem przypisania do konkretnej osoby fizycznej, co pozwala na jej bezpieczne przechowywanie na serwerze i automatyzację procesów. Wykorzystanie logiki pieczęć-szybsza-brak-klucza-prywatnego osoby fizycznej pozwala na masowe wystawianie dokumentów bez interwencji personelu. Dla 100 faktur dziennie pieczęć zaoszczędza 40 minut czasu pracy pracownika księgowości, eliminując konieczność każdorazowego wpisywania kodu PIN do karty kryptograficznej.
| Cecha | Podpis kwalifikowany | Pieczęć elektroniczna |
|---|---|---|
| Czas wykonania (100 faktur) | Około 45 minut (manualnie) | Około 5 minut (automatycznie) |
| Cena roczna | Ok. 300 zł - 500 zł | Ok. 800 zł - 1500 zł |
| Ryzyko utraty klucza | Średnie (karta fizyczna) | Niskie (klucz w module HSM) |
FAQ - najczęstsze błędy bezpieczeństwa w API KSeF
Dlaczego otrzymuję błąd 401 mimo poprawnego tokena JWT?
-H 'Authorization: Bearer eyJ0...'.Czy istnieje ryzyko, że wystawiona faktura zniknie z systemu?
Czy mogę używać tego samego tokena w dwóch firmach?
Ile czasu mam na odpowiedź po wygenerowaniu challenge?
Czy KSeF weryfikuje łańcuch certyfikatów podczas połączenia?
openssl s_client -connect ksef.podatki.gov.pl:443.Redakcja · wszystkie artykuły