EC - co to jest? Definicja pojęcia KSeF

EC (Elliptic Curve - krzywe eliptyczne) to algorytm kryptograficzny używany w KSeF API 2.0 do podpisywania dokumentów XAdES. KSeF wymaga certyfikatów EC z krzywą secp256r1 (NIST P-256) i algorytmem ECDSA-SHA256. Certyfikaty EC są zalecane przez Ministerstwo Finansów.

Co to jest EC?

EC (Elliptic Curve - krzywe eliptyczne) to algorytm kryptograficzny wykorzystujący matematyczne właściwości krzywych eliptycznych do zapewnienia bezpieczeństwa. Krzywe eliptyczne oferują lepszą wydajność i bezpieczeństwo przy mniejszych rozmiarach kluczy w porównaniu z algorytmami RSA.

W kontekście Krajowego Systemu e-Faktur (KSeF), EC jest używany do podpisywania dokumentów AuthTokenRequest w formacie XAdES. KSeF wymaga certyfikatów EC z krzywą secp256r1 (NIST P-256, prime256v1 w OpenSSL) i algorytmem ECDSA-SHA256.

Certyfikaty EC są zalecane przez Ministerstwo Finansów ze względu na lepszą wydajność i bezpieczeństwo przy mniejszych rozmiarach kluczy. 256 bitów EC odpowiada 3072 bitom RSA pod względem bezpieczeństwa, ale wymaga mniejszego rozmiaru klucza.

EC w KSeF API

EC jest używany w KSeF API 2.0 do podpisywania dokumentów AuthTokenRequest w formacie XAdES. Wymagania: krzywa secp256r1 (NIST P-256, prime256v1 w OpenSSL, OID: 1.2.840.10045.2.1), algorytm podpisu ECDSA z SHA-256, certyfikat musi zawierać rozszerzenia keyUsage (digitalSignature, nonRepudiation) oraz extendedKeyUsage (clientAuth), organizationIdentifier z NIP (dla certyfikatów firmowych). Certyfikaty EC są zalecane przez Ministerstwo Finansów.

Wymagania dla certyfikatów EC

Certyfikaty EC w KSeF muszą spełniać następujące wymagania: krzywa secp256r1 (NIST P-256, prime256v1 w OpenSSL, OID: 1.2.840.10045.2.1), algorytm podpisu ECDSA z SHA-256, rozszerzenia keyUsage (digitalSignature, nonRepudiation), extendedKeyUsage (clientAuth), organizationIdentifier z NIP (dla certyfikatów firmowych). Niektóre biblioteki (np. BouncyCastle) mogą wymagać dodatkowej konfiguracji dla certyfikatów EC.

EC vs RSA

EC (krzywe eliptyczne): wymaga krzywej secp256r1 (mniejszy rozmiar klucza), zalecane przez Ministerstwo Finansów, lepsza wydajność i bezpieczeństwo przy mniejszych rozmiarach kluczy, 256 bitów EC odpowiada 3072 bitom RSA, może wymagać dodatkowej konfiguracji w niektórych bibliotekach. RSA: wymaga klucza 2048 bitów (większy rozmiar), szeroko wspierane przez biblioteki, może być łatwiejsze w implementacji. Oba typy certyfikatów są akceptowane przez KSeF.

Problemy z implementacją EC

Niektóre biblioteki kryptograficzne (BouncyCastle, OpenSSL w PHP, niektóre wersje node-forge) mogą wymagać dodatkowej konfiguracji dla certyfikatów EC. Problemy mogą wynikać z nieprawidłowego użycia algorytmów, providerów kryptograficznych lub konfiguracji krzywych eliptycznych. W razie problemów rozważ użycie certyfikatów RSA lub sprawdź dokumentację biblioteki dotyczącą ECDSA.

FAQ

Jakie są wymagania dla certyfikatów EC w KSeF?

Certyfikaty EC muszą używać krzywej secp256r1 (NIST P-256, prime256v1 w OpenSSL, OID: 1.2.840.10045.2.1). Algorytm podpisu to ECDSA z SHA-256. Certyfikat musi zawierać rozszerzenia keyUsage (digitalSignature, nonRepudiation) oraz extendedKeyUsage (clientAuth). Certyfikaty EC są zalecane przez Ministerstwo Finansów.

Dlaczego certyfikat EC zwraca błąd 'Nieprawidłowa treść podpisu'?

Upewnij się, że używasz krzywej secp256r1 i algorytmu ECDSA z SHA-256. Niektóre biblioteki (np. BouncyCastle, OpenSSL w PHP) wymagają dodatkowej konfiguracji dla certyfikatów EC. Sprawdź dokumentację biblioteki dotyczącą podpisywania z certyfikatami EC. W razie problemów możesz użyć certyfikatów RSA, które są szerzej wspierane.

Czy EC jest lepsze niż RSA?

Certyfikaty EC są zalecane przez Ministerstwo Finansów ze względu na lepszą wydajność i bezpieczeństwo przy mniejszych rozmiarach kluczy. 256 bitów EC odpowiada 3072 bitom RSA pod względem bezpieczeństwa. Jednak implementacja EC może być bardziej skomplikowana w niektórych bibliotekach. Oba typy są akceptowane przez KSeF.

Jakie biblioteki wspierają certyfikaty EC?

Większość nowoczesnych bibliotek kryptograficznych wspiera certyfikaty EC, ale niektóre mogą wymagać dodatkowej konfiguracji. BouncyCastle wymaga użycia BCECProvider dla EC. OpenSSL w PHP może wymagać dodatkowej konfiguracji. Sprawdź dokumentację biblioteki dotyczącą podpisywania z certyfikatami EC.

Powiązane tematy

Dalsze korzystanie z tej witryny oznacza akceptację Polityki prywatności . Używamy plików cookie, aby zapewnić najlepszą jakość korzystania z naszej witryny internetowej. Przeczytaj naszą Politykę plików cookie .
Akceptuj Odrzuć