Problem zaczyna się w przeciwnym kierunku!
Gdy podatnik pobiera fakturę z KSeF, dokument wraca z serwerów Ministerstwa Finansów jako XML chroniony tylko tunelem HTTPS. Dla zwykłego połączenia internetowego to jest bezpieczne, bo HTTPS szyfruje transmisję między klientem a serwerem. Tyle że w tym przypadku po drodze stoi bramka WAF Impervy. I ten WAF analizuje ruch aplikacyjny, więc widzi ten ruch po odszyfrowaniu TLS. Inaczej byłby ślepy i nie mógłby pełnić swojej funkcji.
Powstaje więc naturalne pytanie: dlaczego Ministerstwo Finansów nie zrobiło szyfrowania end-to-end również w drugą stronę? Skoro podatnik potrafi zaszyfrować fakturę do Ministerstwa, to dlaczego Ministerstwo nie szyfruje faktury do podatnika?
Odpowiedź jest niestety skomplikowana.
W kierunku od podatnika do Ministerstwa sprawa jest łatwa. Wszyscy szyfrują do jednego odbiorcy, czyli Ministerstwa Finansów. Państwo publikuje swój klucz publiczny, a w ukryciu trzyma prywatny. Program księgowy bierze fakturę, szyfruje ją (hybrydowo) tym kluczem publicznym i wysyła. I tyle, jeden centralny odbiorca, jeden model kryptograficzny, jedna logika.
W drugą stronę sytuacja nie jest tak prosta.
Ministerstwo Finansów musiałoby szyfrować faktury do milionów możliwych odbiorców. Do przedsiębiorcy, jego księgowej, do biura rachunkowego, systemu ERP, pełnomocnika, pracownika z uprawnieniami, do następcy prawnego, do kilku podmiotów naraz. I każdy z nich musiałby mieć swój klucz publiczny, zarejestrowany, zweryfikowany, aktualny i powiązany z konkretnymi uprawnieniami.
To oznaczałoby stworzenie wielkiej krajowej książki adresowej kluczy kryptograficznych dla całej gospodarki!
Ktoś zakłada firmę — trzeba zarejestrować klucz. Firma zmienia system księgowy — trzeba zmienić klucz. Biuro rachunkowe dostaje pełnomocnictwo — trzeba dopuścić jego klucz. Biuro rachunkowe traci pełnomocnictwo — trzeba ten dostęp odwołać. Pracownik odchodzi — jego klucz trzeba unieważnić. Klucz się zgubił — trzeba odzyskać dostęp. Certyfikat wygasł — trzeba obsłużyć rotację. Spółka się przekształciła — trzeba zachować dostęp do starych faktur. A stare faktury zaszyfrowane dawnym kluczem nadal muszą być możliwe do odczytania przez uprawniony podmiot.
To nie jest zwykła funkcja w API. To jest cała infrastruktura kryptograficzna państwa — skomplikowana przede wszystkim dla podatników!
Problem jest jeszcze głębszy. Nie wystarczy pozwolić klientowi podać dowolnego klucza w żądaniu pobrania faktury. Gdyby tak było, pośrednia bramka WAF, widząc token autoryzacyjny klienta, mogłaby sama wysłać żądanie do KSeF i podać własny klucz. Serwer zaszyfrowałby fakturę do tego klucza, a bramka mogłaby ją potem odczytać. Szyfrowanie wyglądałoby poważnie, ale nie chroniłoby przed podmiotem stojącym na bramce.
Prawdziwe szyfrowanie end-to-end w drugą stronę musiałoby działać inaczej. KSeF musiałby szyfrować fakturę wyłącznie do wcześniej zarejestrowanego, zatwierdzonego klucza publicznego podatnika albo jego uprawnionego systemu. Token dostępu musiałby być powiązany z tym kluczem. Żądania musiałyby być podpisywane albo zabezpieczone tak, by pośrednik widzący sam token nie mógł udawać klienta.
To jest możliwe. Tylko że to jest wielokroć droższe niż to co jest obecnie, skomplikowane dla podatników, trudne w utrzymaniu i koszmarne organizacyjnie. Wymagałoby obsługi kluczy, pełnomocnictw, rotacji, utraty dostępu, odwołań, historii, wyjątków, migracji i sporów. Państwo musiałoby nie tylko przechowywać faktury, ale zarządzać kryptograficzną tożsamością całej gospodarki.
W normalnej architekturze na całym świecie takiego potwora się nie buduje, bo nie ma takiej potrzeby. Wystarcza HTTPS. Serwer państwowy rozmawia z klientem przez szyfrowany tunel, a bramka WAF należy do zaufanej infrastruktury operatora systemu. Jest częścią tego samego organizmu. Nie jest zagranicznym pośrednikiem stojącym między podatnikiem a państwem. O ile korzystanie z globalnych dostawców bezpieczeństwa jest na świecie powszechne, o tyle oddawanie zagranicznemu podmiotowi terminacji ruchu dla tak krytycznego systemu, w którym płyną jawne dane całej gospodarki, stanowi ogromne i niepotrzebne ryzyko.
Istotą problemu KSeF nie jest samo to, że Ministerstwo Finansów nie zbudowało skrajnie skomplikowanego szyfrowania end-to-end w obie strony. Problemem jest to, że zrezygnowano z takiego szyfrowania w kierunku od Ministerstwa do podatnika, a jednocześnie ustawiono na bramce zewnętrznego, zagranicznego operatora WAF.
Gdyby ta bramka była w pełni polska, państwowa, pod całkowitą kontrolą krajowej infrastruktury, wszystko byłoby dużo prostsze. W ogóle szyfrowanie aplikacyjne E2E nie byłoby potrzebne, szyfrowanie HTTPS by wystarczyło. Ale gdy bramkę obsługuje amerykańska firma Imperva, z zapleczem badawczo-rozwojowym w Izraelu, należąca do francuskiego koncernu zbrojeniowo-technologicznego Thales, działającego m.in. w sektorze wywiadowczym, sytuacja zmienia się zasadniczo. To, co w normalnym systemie byłoby technicznym uproszczeniem, tutaj staje się problemem suwerenności cyfrowej.
Ministerstwo wybrało prostszy model: faktura do KSeF jest szyfrowana aplikacyjnie, faktura z KSeF wraca jako XML po HTTPS. Ten model byłby zrozumiały, gdyby cała ścieżka zaufania była krajowa. Ale nie jest. Na tej ścieżce stoi zagraniczna bramka WAF, która z definicji musi analizować ruch aplikacyjny.
Dlatego komunikaty Ministerstwa są tak mylące. Mówią o szyfrowaniu tak, jakby rozwiązywało cały problem. Tymczasem szyfrowanie działa mocno w jedną stronę — od podatnika do KSeF. W drugą stronę, przy pobieraniu faktury, ochrona sprowadza się do HTTPS, a ten HTTPS przechodzi przez bramkę WAF.
To nie jest drobiazg techniczny. To jest cała różnica między systemem, w którym państwo samo chroni dane swojej gospodarki, a systemem, w którym państwo oddaje strategiczny punkt widzenia zewnętrznemu pośrednikowi, do którego logów dostęp mogą dostać wywiady gospodarcze trzech państw: Francji, USA i Izraela.
__________________
UWAGA!!! Nowe ustalenia w kwestii KSeF! <- poprzednia notka
następna notka -> Komórki w szkołach
__________________
Tagi: GPS65, KSeF



Komentarze
Pokaż komentarze (3)