Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Vad är CSP och PKCS#11?

Vad-är-CSP-och-PKCS11

CSP (Cryptographic Service Provider) är ett Windows-programvarubibliotek som utför kryptografiska operationer via Microsofts CryptoAPI. PKCS#11 är en plattformsoberoende standard som definierar hur programvara kommunicerar med kryptografisk hårdvara som HSM:er, smartkort och USB-tokens. Båda ger applikationer säker åtkomst till kryptografiska funktioner och nycklar.

CSP och PKCS#11 är två kryptografiska gränssnitt som låter applikationer använda kryptografiska funktioner och skydda nycklar. En CSP (Cryptographic Service Provider) är en Windows-specifik programmodul som används via Microsofts CryptoAPI. PKCS#11 är en öppen, plattformsoberoende standard (även kallad Cryptoki) för att kommunicera med hårdvara som HSM:er och smartkort. Båda används ofta vid kodsignering för att förvara privata nycklar i säker hårdvara.

Key Takeaways

  • En CSP (Cryptographic Service Provider) är ett Windows-programvarubibliotek som utför kryptografiska operationer via Microsofts CryptoAPI (och dess efterföljare, CNG).
  • PKCS#11 (även kallad Cryptoki) är en plattformsoberoende standard som definierar hur applikationer kommunicerar med kryptografiska tokens som HSM:er, smartkort och USB-tokens.
  • Den största skillnaden: CSP är Windows-specifik och Microsoft-definierad, medan PKCS#11 är en öppen standard som fungerar i Windows, Linux och macOS.
  • Båda är centrala för kodsignering, eftersom de låter ett signeringsverktyg använda en privat nyckel som finns i säker hårdvara utan att nyckeln någonsin lämnar den.
  • Båda är validerade mot FIPS 140-3 (som ersatte FIPS 140-2), och båda utvecklas för att stödja post-kvantumsigneringsalgoritmer som ML-DSA och hashbaserade LMS och XMSS.

Vad är en CSP (kryptografisk tjänsteleverantör)?

En kryptografisk tjänsteleverantör (CSP) är ett programbibliotek i Microsoft Windows som tillhandahåller den faktiska implementeringen av kryptografiska operationer för Microsoft CryptoAPI (CAPI). När ett Windows-program anropar en CryptoAPI-funktion för att kryptera data, generera en nyckel eller skapa en digital signatur , dirigeras begäran till en CSP, som utför det kryptografiska arbetet och hanterar de tillhörande nycklarna. CSP:er är speciella DLL-filer som måste signeras digitalt av Microsoft, och Windows verifierar signaturen när den laddas för att säkerställa att den inte har manipulerats.

CSP:er kan backas upp av programvara eller hårdvara som smartkort och HSM:er. Det är värt att notera att det klassiska CryptoAPI:et och dess CSP:er är den äldre Windows-kryptografiska modellen; Microsofts nyare ramverk, Cryptography API : Next Generation (CNG), använder Key Storage Providers (KSP:er) och är den moderna efterföljaren, även om termen CSP fortfarande används i stor utsträckning och många leverantörer fortfarande är i bruk.

Varför CSP:er är viktiga

  • De förenklar kryptering för applikationer: Utvecklare kan säkra sina appar genom vanliga API-anrop utan att själva implementera kryptografi; CSP:n hanterar det bakom kulisserna.
  • De stöder både mjukvara och hårdvara: En CSP kan använda programvarubaserade nycklar eller hårdvarubaserad säkerhet som smartkort och HSM:er, vilket ger ett starkare skyddslager.
  • De är inbyggda i Windows: För Windows-applikationer är CSP:er och deras CNG-efterföljare den inbyggda, färdiga vägen till säkra kryptografiska operationer.
  • De centraliserar kryptografisk hantering: kryptering, digitala signaturer och nyckelhantering hanteras konsekvent, så att utvecklare kan fokusera på applikationslogik.
  • De stöder efterlevnad: Genom att upprätthålla starka, validerade kryptografi, de hjälper till att uppfylla krav som HIPAA, PCI DSSoch GDPR.

Moderna Microsoft-kryptografiska leverantörer

Microsoft erbjuder flera nuvarande leverantörer, medan äldre leverantörer (som Microsoft Base Cryptographic Provider och RSA SChannel Provider) har föråldrats till förmån för starkare, modernare alternativ. De viktigaste moderna leverantörerna:

ProviderSyfteTypisk användning
Leverantör av programvarunyckellagring (KSP)Generell programvarubaserad nyckellagring och -drift (RSA, ECC, SHA-2)Nyckelutbyte, digitala signaturer, datakryptering
Leverantör av förvaring av smartkortsnycklarHanterar nycklar som lagras på smartkortSäker inloggning, identitetsverifiering, MFA
Plattform KryptoleverantörAnvänder TPM för hårdvarubaserade åtgärderSäker start, diskkryptering, nyckelverifiering
Förbättrad kryptografisk leverantörStarkare säkerhet med längre nyckelstöd (RSA, AES, SHA)Längre tangenter, bakåtkompatibilitet
AES-kryptografisk leverantörDedikerad symmetrisk AES-krypteringSnabb fil- och datakryptering

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Vad är PKCS#11?

PKCS#11 står för Public-Key Cryptography Standard #11. PKCS är en familj av kryptografiska standarder som ursprungligen utvecklades av RSA Laboratories, där varje nummer definierar en specifik standard. PKCS#11 definierar specifikt ett kryptografiskt token-gränssnitt, det API genom vilket applikationer kommunicerar med kryptografisk hårdvara som HSM:er, smartkort och USB-tokens. Detta API kallas Cryptoki (förkortning för kryptographic token interface). Till skillnad från en CSP är PKCS#11 en öppen, leverantörsneutral standard som fungerar i Windows, Linux och macOS, vilket är anledningen till att det är det gemensamma språket för att kommunicera med HSM:er över olika plattformar.

Kryptovalutor, slots, tokens och objekt

PKCS#11 organiserar hårdvaruåtkomst kring några kärnkoncept:

  • Slot: Det fysiska gränssnittet genom vilket en applikation når en token, som en smartkortläsare eller en USB-port. Ett system kan ha flera platser.
  • Token: Den faktiska enheten som lagrar nycklar och utför kryptografiska operationer, såsom ett smartkort, USB-nyckel eller HSM. Detta är kärnan i PKCS#11: nycklarna förblir låsta inuti token.
  • Objekt: De data som token hanterar: nyckelobjekt (offentliga, privata eller hemliga nycklar), certifikatobjekt (t.ex. X.509 certifikat), dataobjekt och leverantörsdefinierade objekt.
  • Sessions: En session är en tillfällig anslutning mellan en applikation och en token. Publika objekt är tillgängliga för alla; privata objekt kräver inloggning. PKCS#11 definierar två roller, säkerhetsansvarig (som hanterar token och PIN-koder) och den vanliga användaren (som har åtkomst till privata objekt).

Den viktigaste säkerhetsegenskapen är att när en applikation ber token att signera eller dekryptera, sker operationen inuti token och den privata nyckeln lämnar aldrig hårdvaran. Applikationen skickar bara in data och får tillbaka ett resultat.

Varför PKCS#11 är viktigt

  • Det är en enhetlig standard: Applikationer interagerar konsekvent med kryptografisk hårdvara, oavsett enhetstillverkare, vilket förbättrar kompatibilitet och tillförlitlighet.
  • Det är plattformsoberoende: PKCS#11 fungerar på Windows, Linux och macOS, så utvecklare är inte bundna till ett enda operativsystem.
  • Den förvarar nycklar i hårdvara: Privata nycklar som används för signering och dekryptering finns kvar inuti token, vilket förhindrar stöld även om värden komprometteras.
  • Det stöder efterlevnad: PKCS#11-implementeringar valideras vanligtvis för att FIPS 140-3, som uppfyller strikta krav för säker nyckelhantering.

CSP vs PKCS#11: Jämförelse

LeveransCSPPKCS # 11
plattformWindows-specifikPlattformsoberoende (Windows, Linux, macOS)
Primär användningWindows-programAlla applikationer som använder kryptografiska tokens
HårdvaruhjälpSmartkort, HSM:er, programvaraSmartkort, HSM:er, USB-tokens
StandardiseringMicrosoft-definierat gränssnittÖppen standard (ursprungligen RSA Labs)
NyckelhanteringIntegrerad med Windows-säkerhetSäker nyckelförvaring i hårdvarutokens
Användning vid kodsigneringWindows-signeringsverktyg (signtool)Plattformsoberoende signering mot HSM-innehavda nycklar

CSP, PKCS#11 och kodsignering

Båda gränssnitten är grundläggande för säker kodsignering. Säkerheten vid kodsignering beror helt på att skydda den privata signeringsnyckeln, och det starkaste sättet att göra det är att hålla nyckeln inuti en HSM så att den aldrig vidrör disken. CSP (via CNG och KSP:er) och PKCS#11 är de två gränssnitten som låter ett signeringsverktyg använda en HSM-hållen nyckel: signeringsverktyget skickar hashen som ska signeras till HSM:en via gränssnittet, HSM:en signerar inom sin säkra gräns och signaturen kommer tillbaka utan att nyckeln någonsin lämnar. På Windows använder verktyg som signtool vanligtvis en CSP eller KSP; plattformsoberoende och företagssignering använder vanligtvis PKCS#11. Samma mönster säkrar containeravbildningssignering, firmwaresignering och tidsstämpling.

Post-Quantum Signing via CSP och PKCS#11
I takt med att kodsignering migrerar till postkvantalgoritmer utvecklas även dessa gränssnitt. PKCS#11-standarden och HSM-leverantörer lägger till stöd för NIST postkvantumsignaturalgoritmer, främst ML-DSA (FIPS 204), och de tillståndsfulla hashbaserade scheman LMS och XMSS (NIST SP 800-208) som NSA CNSA 2.0 rekommenderar för signering av firmware och programvara idag. Eftersom så mycket signeringsinfrastruktur når nycklar via PKCS#11 eller CNG, är det gränssnittsstödet en praktisk grindningsfaktor för post-kvantumkodsignering: en organisation kan bara signera med ML-DSA eller LMS när dess HSM och dess kryptografiska gränssnitt exponerar dessa algoritmer. Att bekräfta detta stöd är ett tidigt steg i all migrering efter kvantsignering.

En anmärkning om FIPS 140-3

HSM:er och kryptografiska moduler som nås via CSP och PKCS#11 valideras mot FIPS 140-3, den nuvarande amerikanska och kanadensiska standarden för kryptografiska moduler, som ersatte FIPS 140-2. Valideringsprogrammet för kryptografiska moduler slutade acceptera nya FIPS 140-2-inlämningar 2022, och alla återstående FIPS 140-2-certifikat flyttar till historisk status den 21 september 2026. När du väljer en HSM eller token att använda via något av gränssnitten, leta efter FIPS 140-3-validering snarare än 140-2 för nya distributioner.

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Hur krypteringskonsulting hjälper

Encryption Consultings CodeSign Secure använder dessa gränssnitt för att leverera företagskodsignering med nycklar skyddade i en HSM. Den integreras via PKCS#11 och Windows CNG så att signeringsverktyg över plattformar kan signera mot hårdvarulagrade nycklar, framtvinga vem som är behörig att signera och logga varje operation för granskning. Eftersom den centraliserar signering över artefakttyper styr samma plattform Windows-, Java-, container- och firmware-signering, och den stöder övergången till post-kvantumsigneringsalgoritmer i takt med att HSM- och gränssnittsstöd mognar. Stöds av ISO/IEC 27001:2022- och SOC 2-certifierade metoder.

Vanliga frågor om partihandel med mat och dryck

Vad är skillnaden mellan CSP och PKCS#11?

En CSP (Cryptographic Service Provider) är ett Windows-specifikt programvarubibliotek som utför kryptografiska operationer via Microsofts CryptoAPI. PKCS#11 är en öppen, plattformsoberoende standard som definierar hur applikationer kommunicerar med kryptografisk hårdvara som HSM:er och smartkort, och den fungerar på Windows, Linux och macOS. Kort sagt är CSP Microsoft-definierat och endast för Windows, medan PKCS#11 är leverantörsneutral och plattformsoberoende. Båda låter applikationer använda nycklar som förvaras säkert i hårdvara.

Vad är en kryptografisk tjänsteleverantör (CSP)?

En CSP är ett programbibliotek i Windows som implementerar kryptografiska operationer för Microsoft CryptoAPI. När ett program begär kryptering, nyckelgenerering eller en digital signatur, dirigeras begäran till en CSP, som utför operationen och hanterar nycklarna. CSP:er måste signeras digitalt av Microsoft och kan backas upp av programvara eller hårdvara som smartkort och HSM:er. Microsofts nyare CNG-ramverk, som använder Key Storage Providers, är den moderna efterföljaren.

Vad är PKCS#11?

PKCS#11, även kallad Cryptoki, är Public-Key Cryptography Standard #11. Den definierar ett kryptografiskt token-gränssnitt, det API genom vilket programvara kommunicerar med kryptografisk hårdvara som HSM:er, smartkort och USB-tokens. Det är en öppen, plattformsoberoende standard, ursprungligen från RSA Laboratories, och är det vanliga sättet som applikationer använder HSM-skyddade nycklar över olika operativsystem och enhetsleverantörer.

Vad är slots, tokens och objekt i PKCS#11?

I PKCS#11 är en plats det fysiska gränssnitt som används för att nå en token, som en smartkortläsare eller USB-port. En token är själva enheten (smartkort, USB-nyckel eller HSM) som lagrar nycklar och utför operationer. Objekt är de data som token hanterar: nyckelobjekt, certifikatobjekt, dataobjekt och leverantörsdefinierade objekt. När en applikation behöver en kryptografisk operation använder den en plats för att nå token, som utför operationen samtidigt som nyckeln hålls inuti hårdvaran.

Används CSP och PKCS#11 vid kodsignering?

Ja. Båda är centrala för säker kodsignering eftersom de låter ett signeringsverktyg använda en privat nyckel som finns i en HSM utan att nyckeln någonsin lämnar hårdvaran. På Windows använder signeringsverktyg som signtool vanligtvis en CSP eller dess CNG-efterföljare; plattformsoberoende och företagssignering använder vanligtvis PKCS#11. Detta skyddar signeringsnyckeln, som är den enskilt viktigaste tillgången vid kodsignering, eftersom en stulen nyckel låter en angripare signera skadlig programvara.

Stöder CSP och PKCS#11 postkvantumalgoritmer?

Stöd läggs till. HSM-leverantörer och PKCS#11-standarden införlivar NIST:s post-kvantumsigneringsalgoritmer, främst ML-DSA (FIPS 204), tillsammans med de hashbaserade LMS- och XMSS-scheman som används för signering av firmware och programvara. Eftersom de flesta signeringsinfrastrukturer når nycklar via PKCS#11 eller Windows CNG, är gränssnitts- och HSM-stöd för dessa algoritmer en praktisk förutsättning för post-kvantumkodsignering, och att bekräfta det är ett tidigt steg i varje migrering.

Signera mot hårdvaruskyddade nycklar

CSP och PKCS#11 är hur signeringsverktyg når nycklar som lagras säkert i hårdvara, och att få den integrationen rätt är grunden för säker kodsignering. Utforska Encryption Consultings CodeSign Secure för att signera över plattformar mot HSM-skyddade nycklar, med inbyggd post-kvantumberedskap.