Delen via


Sleuteltypen, algoritmen en bewerkingen

Key Vault ondersteunt twee resourcetypen: kluizen en beheerde HSM's. Beide typen resources ondersteunen verschillende versleutelingssleutels. Zie Over sleutels voor een overzicht van ondersteunde sleuteltypen, beveiligingstypen per resourcetype.

In de volgende tabel ziet u een overzicht van de belangrijkste typen en ondersteunde algoritmen.

Sleuteltypen/grootten/curven Encrypt, decrypt
(Wrap/Unwrap)
sign, verify
EC-P256, EC-P256K, EC-P384, EC-P521 N.v.t. ES256
ES256K
ES384
ES512
RSA 2K, 3K, 4K RSA1_5
RSA-OAEP
RSA-OAEP-256
PS256
PS384
PS512
RS256
RS384
PS512
RSNULL
AES 128-bits, 256-bits
(Alleen beheerde HSM)
AES-KW
AES-GCM
AES-CBC
N.v.t.

EC-algoritmen

De volgende algoritme-id's worden ondersteund met EC- en HSM-sleutels

Curvetypen

SIGN/VERIFY

  • ES256: ECDSA voor SHA-256-hashes en -sleutels die zijn gemaakt met curve P-256. Dit algoritme wordt beschreven op RFC7518.
  • ES256K: ECDSA voor SHA-256-hashes en -sleutels die zijn gemaakt met curve P-256K. Dit algoritme is in afwachting van standaardisatie.
  • ES384: ECDSA voor SHA-384-hashes en -sleutels die zijn gemaakt met curve P-384. Dit algoritme wordt beschreven op RFC7518.
  • ES512: ECDSA voor SHA-512-hashes en -sleutels die zijn gemaakt met curve P-512. Dit algoritme wordt beschreven op RFC7518.

RSA-algoritmen

De volgende algoritme-id's worden ondersteund met RSA- en RSA-HSM-sleutels

WRAPKEY/UNWRAPKEY, ENCRYPT/DECRYPT

  • RSA1_5: RSAES-PKCS1-V1_5 [RFC3447] sleutelversleuteling
  • RSA-OAEP: RSAES met behulp van Optimal Asymmetric Encryption Padding (OAEP) [RFC3447], met de standaardparameters die worden beschreven bij RFC 3447 in sectie A.2.1. Deze standaardparameters maken gebruik van een hash-functie van SHA-1 en een maskergenereerfunctie van MGF1 met SHA-1.
  • RSA-OAEP-256 – RSAES met behulp van optimale asymmetrische versleutelingsopvulling met een hashfunctie van SHA-256 en een maskergeneratiefunctie van MGF1 met SHA-256

SIGN/VERIFY

  • PS256: RSASSA-PSS met behulp van SHA-256 en MGF1 met SHA-256, zoals wordt beschreven in RFC7518.
  • PS384: RSASSA-PSS met behulp van SHA-384 en MGF1 met SHA-384, zoals wordt beschreven in RFC7518.
  • PS512: RSASSA-PSS met behulp van SHA-512 en MGF1 met SHA-512, zoals wordt beschreven in RFC7518.
  • RS256: RSASSA-PKCS-v1_5 met behulp van SHA-256. De door de toepassing geleverde hash-waarde moet worden berekend met SHA-256 en moet 32 bytes lang zijn.
  • RS384: RSASSA-PKCS-v1_5 met behulp van SHA-384. De door de toepassing geleverde hash-waarde moet worden berekend met SHA-384 en moet 48 bytes lang zijn.
  • RS512: RSASSA-PKCS-v1_5 met behulp van SHA-512. De door de toepassing geleverde hash-waarde moet worden berekend met SHA-512 en moet 64 bytes lang zijn.
  • RSNULL: zie RFC2437, een gespecialiseerde use-case om bepaalde TLS-scenario's in te schakelen.

Notitie

RSA-PSS-opvullingsmodus wordt aanbevolen voor betere prestaties. De DigestInfo is samengesteld aan de serverzijde voor tekenbewerkingen die rs256, RS384 en RS512 genereren.

Symmetrische sleutelalgoritmen (alleen beheerde HSM)

Notitie

Teken en controleer of bewerkingsalgoritmen overeenkomen met het sleuteltype, anders retourneert de service de sleutelgrootte onjuist.

Sleutelbewerkingen

Key Vault, inclusief beheerde HSM, ondersteunt de volgende bewerkingen op sleutelobjecten:

  • Maken: Hiermee kan een client een sleutel maken in Key Vault. De waarde van de sleutel wordt gegenereerd en opgeslagen in Key Vault, en wordt niet vrijgegeven aan de client. Er kunnen asymmetrische sleutels worden gemaakt in Key Vault.
  • Importeren: Hiermee kan een client een bestaande sleutel importeren in Key Vault. Asymmetrische sleutels kunnen worden geïmporteerd in Key Vault met behulp van verschillende verpakkingsmethoden binnen een JWK-constructie.
  • Update: Hiermee kan een client met voldoende machtigingen de metagegevens (sleutelkenmerken) wijzigen die zijn gekoppeld aan een sleutel die eerder is opgeslagen in Key Vault.
  • Verwijderen: Hiermee kan een client met voldoende machtigingen een sleutel uit Key Vault verwijderen.
  • Lijst: Hiermee kan een client alle sleutels in een bepaalde sleutelkluis weergeven.
  • Lijstversies: Hiermee kan een client alle versies van een bepaalde sleutel in een bepaalde Sleutelkluis weergeven.
  • Ophalen: Hiermee kan een client de openbare onderdelen van een bepaalde sleutel ophalen in een Sleutelkluis.
  • Back-up: Hiermee exporteert u een sleutel in een beveiligd formulier.
  • Herstellen: Hiermee importeert u een eerder back-up van een sleutel.
  • Release: Er wordt veilig een sleutel vrijgegeven voor geautoriseerde code die wordt uitgevoerd in een vertrouwelijke rekenomgeving. Er is een attestation vereist dat de TRUSTED Execution Environment (TEE) voldoet aan de vereisten van de release_policy van de sleutel.
  • Draaien: Een bestaande sleutel draaien door een nieuwe versie van de sleutel te genereren (alleen Key Vault).

Raadpleeg de Sleutelbewerkingen in de REST API-naslag voor Key Vault voor meer informatie.

Zodra een sleutel is gemaakt in Key Vault, kunnen de volgende cryptografische bewerkingen worden uitgevoerd met behulp van de sleutel:

  • Ondertekenen en verifiëren: Strikt genomen is deze bewerking 'hash ondertekenen' of 'hash verifiëren', omdat Key Vault geen ondersteuning biedt voor hashing van inhoud als onderdeel van het maken van handtekeningen. Toepassingen moeten de te ondertekenen gegevens lokaal hashen en vervolgens een aanvraag bij Key Vault indienen om de hash te laten ondertekenen. Verificatie van ondertekende hashes wordt ondersteund als een gebruiksvriendelijke bewerking voor toepassingen die mogelijk geen toegang hebben tot [openbaar] sleutelmateriaal. Voor de beste prestaties van toepassingen moeten verificatiebewerkingen (VERIFY) lokaal worden uitgevoerd.
  • Sleutelversleuteling/-terugloop: Een sleutel die is opgeslagen in Key Vault kan worden gebruikt om een andere sleutel te beveiligen, meestal een CEK (symmetrische inhoudsversleutelingssleutel). Als de sleutel in Key Vault asymmetrisch is, wordt 'sleutel versleutelen' gebruikt. RSA-OAEP en de bewerkingen WRAPKEY/UNWRAPKEY (sleutel verpakken/uitpakken) zijn bijvoorbeeld gelijk aan de bewerkingen ENCRYPT/DECRYPT (versleutelen/ontsleutelen). Als de sleutel in Key Vault symmetrisch is, wordt 'sleutel verpakken' gebruikt. Bijvoorbeeld: AES-KW. WRAPKEY wordt ondersteund als een gebruiksvriendelijke bewerking voor toepassingen die mogelijk geen toegang hebben tot [openbaar] sleutelmateriaal. Voor de beste prestaties van toepassingen moeten sleutelverpakkingsbewerkingen (WRAPKEY) lokaal worden uitgevoerd.
  • Versleutelen en ontsleutelen: een sleutel die in Key Vault is opgeslagen, kan worden gebruikt om één gegevensblok te versleutelen of te ontsleutelen. De grootte van het blok wordt bepaald door het sleuteltype en het geselecteerde versleutelingsalgoritme. ENCRYPT (versleutelen) wordt ondersteund als een gebruiksvriendelijke bewerking voor toepassingen die mogelijk geen toegang hebben tot [openbaar] sleutelmateriaal. Voor de beste prestaties van toepassingen moeten versleutelingsbewerkingen (ENCRYPT) lokaal worden uitgevoerd.

Hoewel WRAPKEY/UNWRAPKEY (sleutels verpakken/uitpakken) met behulp van asymmetrische sleutels wellicht overbodig lijkt omdat de bewerking gelijk is aan ENCRYPT/DECRYPY (versleutelen/ontsleutelen), is het gebruik van afzonderlijke bewerkingen belangrijk. Het onderscheid biedt semantische scheiding en autorisatiescheiding van deze bewerkingen, en consistentie wanneer andere sleuteltypen door de service worden ondersteund.

Key Vault biedt geen ondersteuning voor EXPORT-bewerkingen. Als een sleutel eenmaal is ingericht in het systeem, kan deze niet meer worden geëxtraheerd en kan het sleutelmateriaal niet meer worden gewijzigd. Gebruikers van Key Vault kunnen hun sleutel echter voor andere use-cases nodig hebben, bijvoorbeeld nadat deze is verwijderd. In dit geval kunnen ze gebruikmaken van de back-up- en herstelbewerkingen (BACKUP en RESTORE) om de sleutel in een beveiligde vorm te exporteren/importeren. Sleutels die zijn gemaakt met de BACKUP-bewerking, kunnen niet buiten Key Vault worden gebruikt. De IMPORT-bewerking kan ook worden gebruikt voor meerdere exemplaren van Key Vault.

Gebruikers kunnen de cryptografische bewerkingen die Key Vault ondersteunt per sleutel beperken met behulp van de eigenschap key_ops van het JWK-object.

Zie JSON Web Key (JWK) voor meer informatie over JWK-objecten.

Bewerkingen voor sleutelrotatiebeleid

Automatische rotatie van sleutelsleutels kan worden ingesteld door beleid voor automatische rotatie van sleutels te configureren. Deze is alleen beschikbaar voor Key Vault-resource.

  • Rotatiebeleid ophalen: configuratie van roulatiebeleid ophalen.
  • Rotatiebeleid instellen: configuratie van rotatiebeleid instellen.

Sleutelkenmerken

Naast de instellingen voor sleutels kunnen de volgende kenmerken worden opgegeven. In een JSON-aanvraag zijn een sleutelwoord en accolades ({}) om kenmerken vereist, zelfs als er geen kenmerken zijn opgegeven.

  • enabled: boolean, optioneel; standaardwaarde is true. Hiermee geeft u op of de sleutel is ingeschakeld en kan worden gebruikt voor cryptografische bewerkingen. Het ingeschakelde kenmerk wordt gebruikt met nbf en exp. Wanneer een bewerking plaatsvindt tussen nbf en exp, wordt deze alleen toegestaan als ingeschakeld is ingesteld op true. Bewerkingen buiten het nbf / exp-venster worden automatisch niet toegestaan, met uitzondering van ontsleuteling, release, uitpakken en verifiëren.
  • nbf: IntDate, optioneel, standaard is nu. Het kenmerk nbf (niet vóór) geeft de tijd aan waarop de sleutel NIET mag worden gebruikt voor cryptografische bewerkingen, met uitzondering van ontsleuteling, release, uitpakken en verifiëren. Voor de verwerking van het kenmerk nbf MOET de huidige datum/tijd later of gelijk zijn aan de niet-vóór-datum/tijd die wordt vermeld in het kenmerk nbf. Door Key Vault kan enig tijdsverschil (van hooguit enkele minuten) worden toegestaan, om rekening te houden met ongelijke kloktijden. De waarde MOET een getal zijn dat een IntDate-waarde bevat.
  • exp: IntDate, optioneel, de standaardwaarde is 'forever'. Het kenmerk exp (verlooptijd) geeft de verlooptijd aan of waarna de sleutel NIET mag worden gebruikt voor cryptografische bewerking, met uitzondering van ontsleuteling, release, uitpakken en verifiëren. Voor de verwerking van het kenmerk exp MOET de huidige datum/tijd eerder zijn dan de vervaldatum/-tijd die wordt vermeld in het kenmerk exp. Door Key Vault kan enig tijdsverschil (van hooguit enkele minuten) worden toegestaan, om rekening te houden met ongelijke kloktijden. De waarde MOET een getal zijn dat een IntDate-waarde bevat.

Er zijn meer alleen-lezenkenmerken die zijn opgenomen in een antwoord dat sleutelkenmerken bevat:

  • gemaakt: IntDate, optioneel. Het kenmerk created geeft aan wanneer deze versie van de sleutel is gemaakt. De waarde is null voor sleutels die zijn gemaakt vóór het toevoegen van dit kenmerk. De waarde MOET een getal zijn dat een IntDate-waarde bevat.
  • bijgewerkt: IntDate, optioneel. Het kenmerk updated geeft aan wanneer deze versie van de sleutel is bijgewerkt. De waarde is null voor sleutels die voor het laatst zijn bijgewerkt vóór het toevoegen van dit kenmerk. De waarde MOET een getal zijn dat een IntDate-waarde bevat.
  • hsmPlatform: tekenreeks, optioneel. Het onderliggende HSM-platform dat een sleutel beveiligt.
    • Een hsmPlatform-waarde van 2 betekent dat de sleutel wordt beveiligd door ons nieuwste met FIPS 140 Level 3 gevalideerd HSM-platform.
    • Een hsmPlatform-waarde van 1 betekent dat de sleutel wordt beveiligd door ons vorige gevalideerdE HSM-platform van FIPS 140 Level 2.
    • Een hsmPlatform-waarde van 0 betekent dat de sleutel wordt beveiligd door een cryptografische module van FIPS 140 Level 1 HSM-software.
    • Als dit niet is ingesteld door een beheerde HSM-pool, wordt deze beveiligd door ons nieuwste MET FIPS 140 Level 3 gevalideerd HSM-platform.

Het is belangrijk te weten dat sleutels zijn gebonden aan de HSM waarin ze zijn gemaakt. Nieuwe sleutels worden naadloos gemaakt en opgeslagen in de nieuwe HSM's. Hoewel er geen manier is om sleutels te migreren of over te dragen, bevinden nieuwe sleutelversies zich automatisch in de nieuwe HSM's. Zie Hoe u sleutelworkloads migreert voor meer informatie over het migreren naar een nieuwe sleutel.

Zie [Over sleutels, geheimen en certificaten: gegevenstypen) voor meer informatie over IntDate en andere gegevenstypen.

Bewerkingen met datum-/tijdcontrole

Niet-geldige en verlopen sleutels, buiten het nbf / exp-venster, werken voor ontsleuteling, release, uitpakken en verifiëren bewerkingen (retourneert niet 403, Verboden). De nog-niet-geldig-status maakt het mogelijk om een sleutel te testen vóór gebruik in een productieomgeving. De vervallen-status maakt het mogelijk om herstelbewerkingen uit te voeren voor gegevens die zijn gemaakt toen de sleutel geldig was. U kunt ook de toegang tot een sleutel uitschakelen met behulp van Key Vault-beleid of door het kenmerk enabled te wijzigen in false.

Zie Gegevenstypen voor meer informatie over gegevenstypen.

Zie JSON Web Key (JWK) voor meer informatie over andere mogelijke kenmerken.

Sleuteltags

U kunt meer toepassingsspecifieke metagegevens opgeven in de vorm van tags. Key Vault ondersteunt maximaal 15 tags, die elk een naam van 256 tekens en een waarde van 256 tekens kunnen bevatten.

Notitie

Labels kunnen worden gelezen door een oproepende functie als ze de machtiging list (weergeven) of get (ophalen) voor die sleutel hebben.

Toegangsbeheer voor sleutels

Toegangsbeheer voor sleutels die door Key Vault worden beheerd, wordt geboden op het niveau van een Key Vault die fungeert als sleutelcontainer. U kunt de toegang tot sleutels beheren met behulp van op rollen gebaseerd toegangsbeheer van Key Vault (aanbevolen) of het machtigingsmodel voor toegangsbeleid voor oude kluizen. Op rollen gebaseerd machtigingsmodel heeft drie vooraf gedefinieerde rollen voor het beheren van sleutels: 'Key Vault Crypto Officer', 'Key Vault Crypto User', 'Key Vault Service Encryption User' en kan worden afgestemd op abonnements-, resourcegroep- of kluisniveau.

Machtigingsmodelmachtigingen voor kluistoegangsbeleid:

  • Machtigingen voor sleutelbeheerbewerkingen

    • get: Het openbare deel van een sleutel lezen, plus de bijbehorende kenmerken
    • lijst: De sleutels of versies van een sleutel weergeven die zijn opgeslagen in een sleutelkluis
    • update: De kenmerken voor een sleutel bijwerken
    • maken: Nieuwe sleutels maken
    • importeren: Een sleutel importeren in een sleutelkluis
    • verwijderen: het sleutelobject verwijderen
    • herstellen: Een verwijderde sleutel herstellen
    • back-up: een back-up maken van een sleutel in een sleutelkluis
    • herstellen: een back-up van een sleutel herstellen naar een sleutelkluis
  • Machtigingen voor cryptografische bewerkingen

    • ontsleutelen: gebruik de sleutel om de beveiliging van een reeks bytes op te heffen
    • versleutelen: Gebruik de sleutel om een willekeurige reeks bytes te beveiligen
    • unwrapKey: gebruik de sleutel om de beveiliging van verpakte symmetrische sleutels op te heffen
    • wrapKey: De sleutel gebruiken om een symmetrische sleutel te beveiligen
    • controleren: De sleutel gebruiken om digests te verifiëren
    • sign: Gebruik de sleutel om digests te ondertekenen
  • Machtigingen voor bevoorrechte bewerkingen

    • opschonen: een verwijderde sleutel opschonen (permanent verwijderen)
    • release: Een sleutel vrijgeven aan een vertrouwelijke rekenomgeving, die overeenkomt met de release_policy van de sleutel
  • Machtigingen voor rotatiebeleidsbewerkingen

    • draaien: Een bestaande sleutel draaien door een nieuwe versie van de sleutel te genereren (alleen Key Vault)
    • rotatiebeleid ophalen: configuratie van rotatiebeleid ophalen
    • rotatiebeleid instellen: configuratie van rotatiebeleid instellen

Raadpleeg de Sleutelbewerkingen in de REST API-naslag voor Key Vault voor meer informatie over het werken met sleutels.

Volgende stappen