Ministerstwo Finansów bezczelnie kłamie!!! Imperva jednak widzi pełną treść faktury ze wszystkimi szczegółami!!!
W moich audytach KSeF opisywałem dotąd architekturę i rolę zewnętrznej bramki bezpieczeństwa. Po dogłębnej analizie technicznej czas złożyć te elementy w nową całość. Obraz, który wyłania się z działania produkcyjnego API 2.0, jest znacznie poważniejszy, niż początkowo zakładałem. Poniższe ustalenia nie wymagają żadnych audytów! To wszystko wynika z oficjalnej dokumentacji udostępnionej publicznie!
Oto cztery fakty techniczne o architekturze Krajowego Systemu e-Faktur, które każdy polski przedsiębiorca powinien znać.
1⃣. Fakt pierwszy: bramkę WAF systemu KSeF obsługuje Imperva
Pierwszy fakt jest najprostszy do sprawdzenia. Produkcyjne API 2.0 KSeF, dostępne pod adresem api. ksef. mf. gov. pl, jest kierowane przez infrastrukturę firmy Imperva. Widać to w DNS — adres ten prowadzi do domeny impervadns. net.
Technicznie oznacza to, że na wejściu do systemu stoi bramka WAF (Web Application Firewall). To nie jest zwykły router, który tylko przepycha pakiety dalej. To zapora aplikacyjna, której zadaniem jest terminowanie TLS i inspekcja ruchu HTTPS, analizowanie zapytań oraz filtrowanie złośliwego ruchu, zanim ten dotrze do serwerów Ministerstwa Finansów.
2⃣. Fakt drugi: faktura jest szyfrowana aplikacyjnie... ale tylko w jedną stronę!
Drugi fakt jest pozornie uspokajający. Kiedy wystawiasz fakturę i Twój program księgowy wysyła ją do KSeF, dokument XML przed wysłaniem do Ministerstwa Finansów jest szyfrowany dodatkowo aplikacyjnie E2E.
W tej konkretnej operacji — podczas wysyłki (uploadu), po terminacji TLS — Imperva nie jest w stanie odczytać treści faktury. Widzi jedynie techniczne metadane komunikacji, ale sama paczka XML pozostaje dla niej nieczytelna. Zabezpieczenie działa bezbłędnie. Problem w tym, że to tylko połowa drogi!
3⃣. Fakt trzeci: z serwerów MF pojedyncze faktury mogą wracać jako XML chroniony tylko HTTPS
Trzeci fakt to architektoniczna pięta achillesowa systemu. Faktury do KSeF nie tylko się wysyła — trzeba je stamtąd również pobierać, choćby po to, by odebrać faktury zakupowe od swoich dostawców i móc je zaksięgować. Codziennie setki tysięcy polskich firm, programów ERP i biur rachunkowych odpytuje API Ministerstwa Finansów o nowe dokumenty zakupowe.
Kiedy podatnik pobiera pojedynczą fakturę z KSeF po numerze KSeF, serwer Ministerstwa zwraca ją jako XML. Nie jest to już zaszyfrowana aplikacyjnie E2E paczka taka jak przy wysyłce faktury do KSeF. Jedyną warstwą ochronną dla pobieranej w ten sposób faktury jest w tym momencie standardowy, szyfrowany tunel HTTPS.
Osobnym mechanizmem jest eksport paczek faktur, który w dokumentacji opisany jest jako szyfrowany. Jednak to nie unieważnia problemu z pobieraniem pojedynczej faktury oraz z jawnymi metadanymi JSON.
4⃣. Fakt czwarty: Imperva stoi w miejscu, w którym ruch HTTPS jest odszyfrowywany do analizy
Tu układanka składa się w całość. Ponieważ Imperva obsługuje bramkę WAF, jej zadaniem jest obsługa i analiza ruchu aplikacyjnego. Taki WAF ma sens tylko wtedy, gdy może zobaczyć żądania i odpowiedzi HTTP po stronie aplikacyjnej.
Dla bramki WAF, która terminuje albo poddaje inspekcji ruch sieciowy, zawartość tunelu HTTPS jest dostępna po odszyfrowaniu. Wraz z pobieranym XML-em przez infrastrukturę zagranicznego dostawcy przelatują również odpowiedzi JSON zawierające pełne metadane: numery NIP, daty, kwoty, numery faktur, numery KSeF, nazwy podmiotów i informacje o kontrahentach. Przy pobraniu pełnej faktury XML dostępne są już także szczegóły dokumentu, w tym pozycje faktury! Wszystko to widzi i może logować zewnętrzna infrastruktura, czyli firma Imperva!
☑️ Architektoniczny absurd
Sejf z polskimi fakturami ma pancerne drzwi, ale tylko z jednej strony. Gdy wrzucasz do niego dokument — szyfrujesz go, a system jest hermetyczny. Jednak gdy miliony polskich firm pobierają swoje faktury z powrotem do systemów księgowych, sejf może wydawać je jako XML chroniony tylko tunelem transportowym. Ten sam tunel przechodzi przez zagranicznego pośrednika stojącego na bramce.
Nie twierdzę, że Imperva masowo czyta lub kopiuje polskie faktury. Tego udowodnić się nie da. Z dokumentacji jednak wynika, że technologicznie może mieć do nich wgląd w postaci niezaszyfrowanej dla bramki WAF po odszyfrowaniu TLS. Nie musi łamać szyfrów, hakować baz danych czy szukać luk w autoryzacji. Ona po prostu stoi przy drzwiach wyjściowych z systemu i może analizować każdą fakturę, którą z Ministerstwa Finansów pobiera podatnik w trybie zwracającym XML po HTTPS. Widzi pełną treść faktury ze wszystkimi szczegółami!
Państwo polskie zbudowało centralny system e-faktur, w którym skupia się pełnia wiedzy o relacjach gospodarczych w kraju, a następnie ustawiło na jego bramce wyjściowej zagranicznego pośrednika z techniczną możliwością wglądu w ten ruch. Jeżeli to nie jest problem suwerenności cyfrowej, to słowo suwerenność straciło sens.
Grzegorz GPS Świderski
t.me/KanalBlogeraGPS
Twitter.com/gps65