Meteen naar de inhoud

Certificaten voor 47 dagen komen eraan. Ben je er klaar voor?

Handel nu →

Wat is CSP en PKCS#11?

Wat is CSP en PKCS11?

CSP (Cryptographic Service Provider) is een Windows-softwarebibliotheek die cryptografische bewerkingen uitvoert via Microsofts CryptoAPI. PKCS#11 is een platformonafhankelijke standaard die definieert hoe software communiceert met cryptografische hardware zoals HSM's, smartcards en USB-tokens. Beide standaarden bieden applicaties veilige toegang tot cryptografische functies en sleutels.

CSP en PKCS#11 zijn twee cryptografische interfaces waarmee applicaties cryptografische functies kunnen gebruiken en sleutels kunnen beschermen. Een CSP (Cryptographic Service Provider) is een Windows-specifieke softwaremodule die via Microsofts CryptoAPI wordt gebruikt. PKCS#11 is een open, platformonafhankelijke standaard (ook wel Cryptoki genoemd) voor communicatie met hardware zoals HSM's en smartcards. Beide worden veel gebruikt bij het ondertekenen van code om privésleutels veilig op te slaan in hardware.

Key Takeaways

  • Een CSP (Cryptographic Service Provider) is een Windows-softwarebibliotheek die cryptografische bewerkingen uitvoert via Microsofts CryptoAPI (en de opvolger daarvan, CNG).
  • PKCS#11 (ook wel Cryptoki genoemd) is een platformonafhankelijke standaard die definieert hoe applicaties communiceren met cryptografische tokens zoals HSM's, smartcards en USB-tokens.
  • Het belangrijkste verschil: CSP is Windows-specifiek en door Microsoft gedefinieerd, terwijl PKCS#11 een open standaard is die werkt op Windows, Linux en macOS.
  • Beide zijn essentieel voor het ondertekenen van code, omdat ze een ondertekeningsprogramma in staat stellen een privésleutel te gebruiken die is opgeslagen in beveiligde hardware, zonder dat de sleutel die hardware ooit verlaat.
  • Beide zijn gevalideerd volgens FIPS 140-3 (dat FIPS 140-2 verving) en beide worden verder ontwikkeld om post-kwantum ondertekeningsalgoritmen zoals ML-DSA en de hash-gebaseerde LMS en XMSS te ondersteunen.

Wat is een CSP (Cryptographic Service Provider)?

Een Cryptographic Service Provider (CSP) is een softwarebibliotheek in Microsoft Windows die de daadwerkelijke implementatie van cryptografische bewerkingen voor de Microsoft CryptoAPI (CAPI) verzorgt. Wanneer een Windows-toepassing een CryptoAPI-functie aanroept om gegevens te versleutelen, een sleutel te genereren of een digitale handtekening te maken , wordt het verzoek doorgestuurd naar een CSP. Deze voert de cryptografische bewerkingen uit en beheert de bijbehorende sleutels. CSP's zijn speciale DLL's die digitaal ondertekend moeten zijn door Microsoft. Windows controleert deze handtekening bij het laden om er zeker van te zijn dat er niet mee is geknoeid.

CSP's kunnen worden ondersteund door software of door hardware zoals smartcards en HSM's. Het is belangrijk om te weten dat de klassieke CryptoAPI en de bijbehorende CSP's het oudere cryptografische model van Windows vertegenwoordigen; Microsofts nieuwere framework, Cryptography API : Next Generation (CNG), maakt gebruik van Key Storage Providers (KSP's) en is de moderne opvolger, hoewel de term CSP nog steeds veelvuldig wordt gebruikt en veel providers nog steeds actief zijn.

Waarom CSP's belangrijk zijn

  • Ze vereenvoudigen encryptie voor applicaties: Ontwikkelaars kunnen hun apps beveiligen via standaard API-aanroepen zonder zelf cryptografie te hoeven implementeren; de CSP regelt dit achter de schermen.
  • Ze bieden ondersteuning voor zowel software als hardware: Een CSP kan gebruikmaken van softwarematige sleutels of hardwarematige beveiliging zoals smartcards en HSM's, wat een extra beschermingslaag biedt.
  • Ze zijn standaard aanwezig in Windows: Voor Windows-applicaties vormen CSP's en hun opvolgers, CNG's, de ingebouwde, kant-en-klare manier om cryptografische bewerkingen te beveiligen.
  • Ze centraliseren het cryptografische beheer: EncryptieDigitale handtekeningen en sleutelbeheer worden consistent afgehandeld, zodat ontwikkelaars zich kunnen concentreren op de applicatielogica.
  • Ze ondersteunen naleving: Door het afdwingen van sterke, gevalideerde geheimschriftZe helpen om aan eisen te voldoen zoals: HIPAA, PCI DSSen GDPR.

Moderne Microsoft-cryptografische providers

Microsoft biedt verschillende actuele providers aan, terwijl oudere providers (zoals de Microsoft Base Cryptographic Provider en de RSA SChannel Provider) zijn vervangen door krachtigere, modernere opties. De belangrijkste moderne providers zijn:

leverancierDoelTypisch gebruik
Software Key Storage Provider (KSP)Algemene softwarematige sleutelopslag en -bewerkingen (RSA, ECC, SHA-2)Sleuteluitwisseling, digitale handtekeningen, gegevensversleuteling
Aanbieder van opslag van smartcardsleutelsBeheert sleutels die op smartcards zijn opgeslagen.Beveiligde login, identiteitsverificatie, MFA
Platform Crypto ProviderMaakt gebruik van de TPM voor hardware-ondersteunde bewerkingen.Beveiligd opstarten, schijfversleuteling, sleutelattestatie
Verbeterde cryptografische providerBetere beveiliging met ondersteuning voor langere sleutels (RSA, AES, SHA)Langere toetsen, achterwaartse compatibiliteit
AES Cryptografische ProviderSpeciaal ontwikkelde AES symmetrische versleutelingSnelle bestands- en gegevensversleuteling

Oplossing voor codeondertekening voor bedrijven

Ontvang één oplossing voor al uw cryptografische behoeften op het gebied van softwarecodeondertekening met onze codeondertekeningsoplossing.

Wat is PKCS#11?

PKCS#11 staat voor Public-Key Cryptography Standard #11. PKCS is een familie van cryptografische standaarden die oorspronkelijk zijn ontwikkeld door RSA Laboratories, waarbij elk nummer een specifieke standaard definieert. PKCS#11 definieert specifiek een cryptografische tokeninterface, de API waarmee applicaties communiceren met cryptografische hardware zoals HSM's, smartcards en USB-tokens. Deze API heet Cryptoki (afkorting van cryptographic token interface). In tegenstelling tot een CSP is PKCS#11 een open, leveranciersneutrale standaard die werkt op Windows, Linux en macOS, waardoor het de gemeenschappelijke taal is voor communicatie met HSM's op verschillende platformen.

Cryptoki, gokkasten, tokens en objecten

PKCS#11 organiseert de toegang tot hardware rond een paar kernconcepten:

  • Slot: De fysieke interface waarmee een applicatie een token bereikt, zoals een smartcardlezer of een USB-poort. Een systeem kan meerdere slots hebben.
  • Token: Het eigenlijke apparaat dat sleutels opslaat en cryptografische bewerkingen uitvoert, zoals een smartcard, USB-stick of HSM. Dit is de kern van PKCS#11: de sleutels blijven opgesloten in het token.
  • Voorwerpen: De gegevens die het token beheert: sleutelobjecten (openbare, privé- of geheime sleutels), certificaatobjecten (zoals X.509-certificaten), dataobjecten en door de leverancier gedefinieerde objecten.
  • Sessions: Een sessie is een tijdelijke verbinding tussen een applicatie en een token. Openbare objecten zijn voor iedereen toegankelijk; voor privéobjecten is een login vereist. PKCS#11 definieert twee rollen: de beveiligingsbeheerder (die het token en de pincodes beheert) en de gewone gebruiker (die toegang heeft tot privéobjecten).

De belangrijkste beveiligingseigenschap is dat wanneer een applicatie de token vraagt ​​om te ondertekenen of te ontsleutelen, de bewerking binnen de token plaatsvindt en de privésleutel de hardware nooit verlaat. De applicatie stuurt alleen gegevens in en krijgt een resultaat terug.

Waarom PKCS#11 belangrijk is

  • Het is een uniforme standaard: Applicaties communiceren consistent met cryptografische hardware, ongeacht de fabrikant van het apparaat, waardoor de compatibiliteit en betrouwbaarheid verbeteren.
  • Het is platformonafhankelijk: PKCS#11 werkt op Windows, Linux en macOS, waardoor ontwikkelaars niet gebonden zijn aan één besturingssysteem.
  • Het bewaart sleutels in hardware: De privésleutels die worden gebruikt voor ondertekening en decryptie blijven in het token, waardoor diefstal wordt voorkomen, zelfs als de host wordt gecompromitteerd.
  • Het ondersteunt de naleving van de regels: PKCS#11-implementaties worden doorgaans gevalideerd om FIPS 140-3, en voldoet aan strenge eisen voor veilig sleutelbeheer.

CSP versus PKCS#11: Vergelijking

KenmerkCSPPKCS # 11
PlatformWindows-specifiekPlatformonafhankelijk (Windows, Linux, macOS)
Primair gebruikWindows-toepassingenElke toepassing die gebruikmaakt van cryptografische tokens.
Hardware ondersteuningSmartcards, HSM's, softwareSmartcards, HSM's, USB-tokens
normaliseringMicrosoft-gedefinieerde interfaceOpen standaard (oorspronkelijk van RSA Labs)
SleutelbeheerGeïntegreerd met Windows-beveiligingVeilige sleutelopslag in hardwaretokens
Gebruik bij het ondertekenen van codes.Windows-ondertekeningstools (signtool)Platformoverschrijdende ondertekening met behulp van HSM-bewaarde sleutels.

CSP, PKCS#11 en codeondertekening

Beide interfaces zijn essentieel voor veilige codeondertekening. De veiligheid van codeondertekening hangt volledig af van de bescherming van de privésleutel, en de sterkste manier om dat te doen is door de sleutel in een HSM te bewaren , zodat deze nooit de schijf raakt. CSP (via CNG en KSP's) en PKCS#11 zijn de twee interfaces waarmee een ondertekeningsprogramma een sleutel in een HSM kan gebruiken: het ondertekeningsprogramma stuurt de te ondertekenen hash via de interface naar de HSM, de HSM ondertekent binnen zijn beveiligde omgeving en de handtekening komt terug zonder dat de sleutel ooit de HSM verlaat. Op Windows gebruiken tools zoals signtool doorgaans een CSP of KSP; platformonafhankelijke en bedrijfsbrede ondertekening maakt meestal gebruik van PKCS#11. Ditzelfde patroon beveiligt de ondertekening van containerimages, firmware en tijdstempels.

Post-quantum ondertekening via CSP en PKCS#11
Naarmate codeondertekening overgaat op post-kwantumalgoritmen, evolueren deze interfaces ook. De PKCS#11-standaard en HSM-leveranciers voegen ondersteuning toe voor de NIST post-kwantum handtekeningalgoritmen, met name ML-DSA (FIPS 204), en de stateful hash-gebaseerde schema's LMS en XMSS (NIST SP 800-208) die NSA CNSA 2.0 aanbevelingen voor het ondertekenen van firmware en software vandaag de dag. Omdat een groot deel van de infrastructuur voor het ondertekenen van sleutels via PKCS#11 of CNG binnenkomt, is ondersteuning voor die interface een praktische drempel voor het ondertekenen van code na het kwantumtijdperk: een organisatie kan alleen ondertekenen met ML-DSA of LMS zodra de HSM en de cryptografische interface deze algoritmen beschikbaar stellen. Het bevestigen van deze ondersteuning is een eerste stap in elke migratie naar digitale handtekeningen na de kwantumtechnologie.

Een toelichting op FIPS 140-3

HSM's en cryptografische modules die via CSP en PKCS#11 worden benaderd, worden gevalideerd volgens FIPS 140-3, de huidige Amerikaanse en Canadese standaard voor cryptografische modules, die FIPS 140-2 heeft vervangen. Het Cryptographic Module Validation Program is in 2022 gestopt met het accepteren van nieuwe FIPS 140-2-inzendingen en alle resterende FIPS 140-2-certificaten krijgen op 21 september 2026 de status 'Historisch'. Wanneer u een HSM of token selecteert voor gebruik via een van beide interfaces, let dan bij nieuwe implementaties op validatie volgens FIPS 140-3 in plaats van 140-2.

Oplossing voor codeondertekening voor bedrijven

Ontvang één oplossing voor al uw cryptografische behoeften op het gebied van softwarecodeondertekening met onze codeondertekeningsoplossing.

Hoe encryptieconsultancy kan helpen

CodeSign Secure van Encryption Consulting maakt gebruik van deze interfaces om bedrijfsbrede codeondertekening mogelijk te maken met sleutels die worden beschermd in een HSM. Het integreert via PKCS#11 en Windows CNG, waardoor ondertekeningstools op verschillende platformen kunnen ondertekenen met hardwarematig opgeslagen sleutels, afdwingt wie bevoegd is om te ondertekenen en elke bewerking registreert voor auditdoeleinden. Omdat het de ondertekening centraliseert voor verschillende artefacttypen, is hetzelfde platform geschikt voor ondertekening van Windows, Java, containers en firmware, en ondersteunt het de overstap naar post-quantum ondertekeningsalgoritmen naarmate de HSM- en interfaceondersteuning volwassener wordt. Het is gebaseerd op ISO/IEC 27001:2022 en SOC 2-gecertificeerde werkwijzen.

Veelgestelde Vragen / FAQ

Wat is het verschil tussen CSP en PKCS#11?

Een CSP (Cryptographic Service Provider) is een Windows-specifieke softwarebibliotheek die cryptografische bewerkingen uitvoert via Microsofts CryptoAPI. PKCS#11 is een open, platformonafhankelijke standaard die definieert hoe applicaties communiceren met cryptografische hardware zoals HSM's en smartcards, en werkt op Windows, Linux en macOS. Kortom, CSP is door Microsoft gedefinieerd en alleen voor Windows, terwijl PKCS#11 leveranciersneutraal en platformonafhankelijk is. Beide standaarden stellen applicaties in staat om sleutels te gebruiken die veilig in hardware zijn opgeslagen.

Wat is een cryptografische serviceprovider (CSP)?

Een CSP (Cryptographic Service Provider) is een softwarebibliotheek in Windows die cryptografische bewerkingen implementeert voor de Microsoft CryptoAPI. Wanneer een applicatie versleuteling, sleutelgeneratie of een digitale handtekening aanvraagt, wordt de aanvraag doorgestuurd naar een CSP, die de bewerking uitvoert en de sleutels beheert. CSP's moeten digitaal ondertekend zijn door Microsoft en kunnen worden ondersteund door software of door hardware zoals smartcards en HSM's (Hardware Security Modules). Microsofts nieuwere CNG-framework (Cryptographic Number Generation), dat gebruikmaakt van Key Storage Providers, is de moderne opvolger.

Wat is PKCS#11?

PKCS#11, ook wel Cryptoki genoemd, is de Public-Key Cryptography Standard #11. Het definieert een cryptografische tokeninterface, de API waarmee software communiceert met cryptografische hardware zoals HSM's, smartcards en USB-tokens. Het is een open, platformonafhankelijke standaard, oorspronkelijk ontwikkeld door RSA Laboratories, en is de gangbare manier waarop applicaties HSM-beveiligde sleutels gebruiken op verschillende besturingssystemen en apparaten van diverse fabrikanten.

Wat zijn slots, tokens en objecten in PKCS#11?

In PKCS#11 is een slot de fysieke interface waarmee een token wordt bereikt, zoals een smartcardlezer of USB-poort. Een token is het eigenlijke apparaat (smartcard, USB-stick of HSM) dat sleutels opslaat en bewerkingen uitvoert. Objecten zijn de gegevens die het token beheert: sleutelobjecten, certificaatobjecten, dataobjecten en door de leverancier gedefinieerde objecten. Wanneer een applicatie een cryptografische bewerking nodig heeft, gebruikt deze een slot om het token te bereiken, dat de bewerking uitvoert terwijl de sleutel in de hardware blijft.

Worden CSP en PKCS#11 gebruikt bij het ondertekenen van codes?

Ja. Beide zijn essentieel voor veilige codeondertekening, omdat ze een ondertekeningsprogramma in staat stellen een privésleutel te gebruiken die in een HSM is opgeslagen, zonder dat de sleutel de hardware ooit verlaat. Op Windows gebruiken ondertekeningsprogramma's zoals Signtool doorgaans een CSP of de opvolger daarvan, CNG; platformonafhankelijke en bedrijfsbrede ondertekening maakt meestal gebruik van PKCS#11. Dit beschermt de ondertekeningssleutel, het belangrijkste onderdeel van codeondertekening, aangezien een gestolen sleutel een aanvaller in staat stelt kwaadaardige software te ondertekenen.

Bieden CSP en PKCS#11 ondersteuning voor post-kwantumalgoritmen?

Ondersteuning wordt toegevoegd. HSM-leveranciers en de PKCS#11-standaard integreren de NIST-algoritmen voor post-kwantumondertekening, met name ML-DSA (FIPS 204), samen met de hash-gebaseerde LMS- en XMSS-schema's die worden gebruikt voor het ondertekenen van firmware en software. Omdat de meeste ondertekeningsinfrastructuren sleutels ontvangen via PKCS#11 of Windows CNG, is interface- en HSM-ondersteuning voor deze algoritmen een praktische voorwaarde voor post-kwantumcodeondertekening, en het bevestigen hiervan is een vroege stap in elke migratie.

Ondertekenen tegen hardwarebeveiligde sleutels

CSP en PKCS#11 zijn de manieren waarop ondertekeningsprogramma's toegang krijgen tot sleutels die veilig in hardware zijn opgeslagen, en een goede integratie hiervan is de basis voor veilige codeondertekening. Ontdek CodeSign Secure van Encryption Consulting om platformoverschrijdend te ondertekenen met HSM-beveiligde sleutels, met ingebouwde compatibiliteit voor post-quantumtoepassingen.