RSA - co to jest? Definicja pojęcia KSeF

RSA (Rivest-Shamir-Adleman) to asymetryczny algorytm kryptograficzny używany w KSeF API 2.0 do podpisywania dokumentów XAdES i szyfrowania kluczy AES. KSeF wymaga certyfikatów RSA 2048 bitów z algorytmem RSA-SHA256.

Co to jest RSA?

RSA (Rivest-Shamir-Adleman) to asymetryczny algorytm kryptograficzny opracowany w 1977 roku przez Rona Rivesta, Adi Shamira i Leonarda Adlemana. RSA wykorzystuje parę kluczy: klucz publiczny (do szyfrowania i weryfikacji podpisu) oraz klucz prywatny (do odszyfrowania i podpisywania).

W kontekście Krajowego Systemu e-Faktur (KSeF), RSA jest używany do: podpisywania dokumentów AuthTokenRequest w formacie XAdES (algorytm RSA-SHA256), szyfrowania kluczy AES algorytmem RSA-OAEP (klucz publiczny KSeF szyfruje klucz AES używany do szyfrowania faktur).

KSeF wymaga certyfikatów RSA 2048 bitów (OID: 1.2.840.113549.1.1.1) z algorytmem podpisu RSA-SHA256. Certyfikaty RSA są szeroko wspierane przez biblioteki kryptograficzne i mogą być łatwiejsze w implementacji niż certyfikaty EC (krzywe eliptyczne).

RSA w KSeF API

RSA jest używany w KSeF API 2.0 w dwóch głównych scenariuszach: podpisywanie dokumentów AuthTokenRequest - użyj algorytmu RSA-SHA256 (http://www.w3.org/2001/04/xmldsig-more#rsa-sha256) z certyfikatem RSA 2048 bitów, szyfrowanie kluczy AES - użyj algorytmu RSA-OAEP z SHA-256 do szyfrowania klucza AES kluczem publicznym KSeF. Certyfikat RSA musi zawierać rozszerzenia keyUsage (digitalSignature, nonRepudiation, keyEncipherment) oraz extendedKeyUsage (clientAuth).

Wymagania dla certyfikatów RSA

Certyfikaty RSA w KSeF muszą spełniać następujące wymagania: długość klucza 2048 bitów (OID: 1.2.840.113549.1.1.1), algorytm podpisu RSA-SHA256, rozszerzenia keyUsage (digitalSignature, nonRepudiation, keyEncipherment), extendedKeyUsage (clientAuth), organizationIdentifier z NIP (dla certyfikatów firmowych). Certyfikaty RSA są szeroko wspierane przez biblioteki kryptograficzne i mogą być łatwiejsze w implementacji niż certyfikaty EC.

RSA vs EC (krzywe eliptyczne)

RSA: wymaga klucza 2048 bitów (większy rozmiar), szeroko wspierane przez biblioteki, może być łatwiejsze w implementacji, używany do podpisywania i szyfrowania. EC (krzywe eliptyczne): wymaga krzywej secp256r1 (mniejszy rozmiar klucza), zalecane przez Ministerstwo Finansów, może wymagać dodatkowej konfiguracji w niektórych bibliotekach, 256 bitów EC odpowiada 3072 bitom RSA pod względem bezpieczeństwa. Oba typy certyfikatów są akceptowane przez KSeF.

FAQ

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

Certyfikaty RSA muszą mieć długość klucza 2048 bitów (OID: 1.2.840.113549.1.1.1). Algorytm podpisu to RSA-SHA256. Certyfikat musi zawierać rozszerzenia keyUsage (digitalSignature, nonRepudiation, keyEncipherment) oraz extendedKeyUsage (clientAuth). Certyfikaty RSA są szeroko wspierane przez biblioteki kryptograficzne.

Jaki algorytm podpisu jest wymagany dla RSA?

Dla certyfikatów RSA w KSeF wymagany jest algorytm RSA-SHA256 (http://www.w3.org/2001/04/xmldsig-more#rsa-sha256). Algorytm skrótu musi być SHA-256. Użyj tego algorytmu przy podpisywaniu dokumentów AuthTokenRequest w formacie XAdES.

Czy RSA jest lepsze niż EC?

Certyfikaty EC są zalecane przez Ministerstwo Finansów ze względu na lepszą wydajność i bezpieczeństwo przy mniejszych rozmiarach kluczy. Jednak certyfikaty RSA mogą być łatwiejsze w implementacji z niektórymi bibliotekami. Oba typy są akceptowane przez KSeF. Wybór zależy od preferencji i możliwości biblioteki.

Jak użyć RSA do szyfrowania klucza AES?

Użyj algorytmu RSA-OAEP z SHA-256 do szyfrowania klucza AES kluczem publicznym KSeF. Pobierz certyfikat z usage ["SymmetricKeyEncryption"] z endpointu GET /api/v2/security/public-key-certificates. Zaszyfruj klucz AES (32 bajty) algorytmem RSA-OAEP i zakoduj wynik w Base64 - to jest encryptedSymmetricKey.

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ć