# Hardware security module

Een hardware-beveiligingsmodule (HSM) is een fysiek computerapparaat dat digitale sleutels beveiligt, beheert, coderings- en decoderingsfuncties uitvoert voor digitale handtekeningen, sterke authenticatie en andere cryptografische functies uitvoert. Deze modules komen traditioneel in de vorm van een insteekkaart of een extern apparaat dat rechtstreeks op een computer of netwerkserver wordt aangesloten. Een hardwarebeveiligingsmodule bevat één of meer beveiligde cryptoprocessorchips.

## Ontwerp

HSM's kunnen kenmerken hebben die sabotage aantonen, zoals zichtbare tekenen van sabotage of logging en alarmering van sabotage. HSM's hebben ook een goede sabotagebestendigheid waardoor het moeilijk is om die te saboteren zonder hem onbruikbaar te maken. Hierdoor is een snelle reactie bij sabotage mogelijk, zoals het verwijderen van sleutels bij detectie van sabotage. Elke module bevat één of meer beveiligde cryptoprocessorchips om sabotage en busprobing te voorkomen, of een combinatie van chips in een module die worden beschermd door de verzegelde, sabotagebestendige of sabotagegevoelige verpakking.
De overgrote meerderheid van de bestaande HSM's zijn voornamelijk ontworpen om geheime sleutels te beheren. Veel HSM-systemen hebben middelen om veilig een back-up te maken van de sleutels die ze buiten de HSM verwerken. Sleutels kunnen in verpakte vorm worden geback-upt en worden opgeslagen op een computerschijf, in andere media of extern met behulp van een veilig draagbaar apparaat zoals een smartcard of een ander beveiligingstoken.
HSM's worden gebruikt voor real-time autorisatie en authenticatie in kritieke infrastructuur en zijn daarom meestal ontworpen om standaard modellen met hoge beschikbaarheid te ondersteunen, waaronder clustering, geautomatiseerde failover en redundante, in het veld vervangbare componenten.
Enkele van de op de markt verkrijgbare HSM's hebben de mogelijkheid om speciaal ontwikkelde modules uit te voeren binnen de beveiligde behuizing van de HSM. Een dergelijke mogelijkheid is bijvoorbeeld handig in het geval waarin speciale algoritmen of bedrijfslogica in een beveiligde en gecontroleerde omgeving moeten worden uitgevoerd. De modules kunnen worden ontwikkeld in native C-taal, .NET, Java of andere programmeertalen. Verder kunnen toekomstige HSM's van de volgende generatie complexere taken aan, zoals het laden en uitvoeren van volledige besturingssystemen en COTS -software zonder dat er aanpassingen en herprogrammering nodig zijn. Dergelijke onconventionele ontwerpen overwinnen bestaande ontwerp- en prestatiebeperkingen van traditionele HSM's. Hoewel ze het voordeel bieden van het beveiligen van applicatiespecifieke code, beschermen deze uitvoeringsengines de status van de FIPS- of Common Criteria -validatie van een HSM.

## Beveiliging

Vanwege de cruciale rol die ze spelen bij het beveiligen van applicaties en infrastructuur, zijn HSM's voor algemeen gebruik en/of de cryptografische modules doorgaans gecertificeerd volgens internationaal erkende normen zoals Common Criteria (bijv. met behulp van Protection Profile EN 419 221-5, "Cryptographic Module for Trust Services") of FIPS 140 (momenteel de derde versie, vaak aangeduid als FIPS 140-3). Dit biedt gebruikers onafhankelijke zekerheid dat het ontwerp en de implementatie van het product en de cryptografische algoritmen deugdelijk zijn. Hoewel het hoogst haalbare niveau van FIPS 140 -beveiligingscertificering beveiligingsniveau 4 is, hebben de meeste HSM's een niveau 3-certificering. In het Common Criteria-systeem is de hoogste EAL (Evaluation Assurance Level) EAL7, de meeste HSM's hebben een EAL4+-certificering. Bij gebruik in financiële betalingstoepassingen wordt de beveiliging van een HSM vaak gevalideerd aan de hand van de HSM-vereisten die zijn gedefinieerd door de Payment Card Industry Security Standards Council.

## Toepassingen

Een hardwarebeveiligingsmodule kan worden gebruikt in elke toepassing die digitale sleutels gebruikt. Doorgaans zijn de sleutels van hoge waarde, wat betekent dat er een aanzienlijke, negatieve impact zou zijn op de eigenaar van de sleutel als deze zou worden gecompromitteerd.
De functies van een HSM zijn:
* onboard veilige cryptografische sleutelgeneratie
* ingebouwde beveiligde cryptografische sleutelopslag, in ieder geval voor de hoogste niveaus en de meest gevoelige sleutels, die vaak hoofdsleutels worden genoemd
* sleutelbeheer
* gebruik van cryptografisch en gevoelig gegevensmateriaal, bijvoorbeeld voor het uitvoeren van ontsleutelings- of digitale handtekeningfuncties
* offloading van applicatieservers voor volledige asymmetrische en symmetrische cryptografie.
HSM's worden ook ingezet om transparante gegevenscoderingssleutels voor databases en sleutels voor opslagapparaten zoals schijf of tape te beheren.
HSM's bieden zowel logische als fysieke bescherming van deze materialen, inclusief cryptografische sleutels, tegen openbaarmaking, ongeoorloofd gebruik en potentiële tegenstanders.
HSM's ondersteunen zowel symmetrische als asymmetrische (publieke sleutel) cryptografie. Voor sommige toepassingen, zoals certificeringsinstanties en digitale ondertekening, bestaat het cryptografische materiaal uit asymmetrische sleutelparen (en certificaten) die worden gebruikt in cryptografie met openbare sleutels. Bij andere toepassingen, zoals data-encryptie of financiële betalingssystemen, bestaat het cryptografisch materiaal voornamelijk uit symmetrische sleutels.
Sommige HSM-systemen zijn ook hardware- cryptografische versnellers. Ze kunnen de prestaties van alleen-hardwareoplossingen voor symmetrische sleutelbewerkingen meestal niet overtreffen. Met prestatiebereiken van 1 tot 10.000 1024-bits RSA -tekens per seconde kunnen HSM's echter een aanzienlijke CPU-offload bieden voor asymmetrische sleutelbewerkingen. Aangezien het National Institute of Standards and Technology (NIST) het gebruik van 2048-bits RSA-sleutels vanaf het jaar 2010 aanbeveelt, zijn prestaties bij langere sleutelgroottes belangrijker geworden. Om dit probleem aan te pakken, ondersteunen de meeste HSM's nu elliptische curve-cryptografie (ECC), die sterkere codering levert met kortere sleutellengtes.

### PKI-omgeving (CA HSM's)

In PKI -omgevingen kunnen de HSM's worden gebruikt door certificeringsinstanties (CA's) en registratie-instanties (RA's) om asymmetrische sleutelparen te genereren, op te slaan en te verwerken. In deze gevallen zijn er enkele fundamentele kenmerken die een apparaat moet hebben, namelijk:
* Logische en fysieke bescherming op hoog niveau
* Meerdelig autorisatieschema voor gebruikers (zie geheim delen)
* Volledige audit- en logtracés
* Veilige sleutelback-up
Aan de andere kant zijn apparaatprestaties in een PKI-omgeving over het algemeen minder belangrijk, zowel bij online als offline operaties, aangezien de procedures van de Registratieautoriteit het prestatieknelpunt van de infrastructuur vormen.

### Kaartbetalingssysteem HSM's (bank-HSM's)

Gespecialiseerde HSM's worden gebruikt in de betaalkaartindustrie. HSM's ondersteunen zowel algemene functies als gespecialiseerde functies die nodig zijn om transacties te verwerken en te voldoen aan industriestandaarden. Ze beschikken normaal gesproken niet over een standaard API.
Typische toepassingen zijn transactieautorisatie en personalisatie van betaalkaarten, waarvoor functies nodig zijn zoals:
* controleren of een door de gebruiker ingevoerde pincode overeenkomt met de referentie-pincode die bekend is bij de kaartuitgever
* creditcard-/debetkaarttransacties verifiëren door kaartbeveiligingscodes te controleren of door hostverwerkingscomponenten van een op EMV gebaseerde transactie uit te voeren in combinatie met een ATM-controller of POS-terminal
* ondersteuning van een crypto-API met een smartcard (zoals een EMV)
* het opnieuw versleutelen van een pincodeblok om het naar een andere autorisatiehost te sturen
* uitvoeren van veilig sleutelbeheer
* ondersteuning van een protocol van POS ATM-netwerkbeheer
* ondersteuning van de facto standaarden van host-host key | API voor gegevensuitwisseling
* een "PIN mailer" genereren en printen
* gegevens genereren voor een magneetstripkaart (PVV, CVV)
* het genereren van een kaartsleutelset en het ondersteunen van het personalisatieproces voor smartcards
De belangrijkste organisaties die standaarden voor HSM's op de bankmarkt produceren en onderhouden, zijn de Payment Card Industry Security Standards Council, ANS X9 en ISO.

### SSL-verbinding tot stand brengen

Prestatiekritische applicaties die HTTPS (SSL/TLS) moeten gebruiken, kunnen profiteren van het gebruik van een SSL Acceleration HSM door de RSA-bewerkingen, waarvoor doorgaans meerdere grote integer-vermenigvuldigingen nodig zijn, van de host-CPU naar het HSM-apparaat te verplaatsen. Typische HSM-apparaten kunnen ongeveer 1 tot 10.000 1024-bits RSA-bewerkingen per seconde uitvoeren. Sommige prestaties bij langere sleutelgroottes worden steeds belangrijker. Om dit probleem aan te pakken, ondersteunen sommige HSM's ECC. Gespecialiseerde HSM-apparaten kunnen aantallen bereiken van wel 20.000 bewerkingen per seconde.

### DNSSEC

Steeds meer registries gebruiken HSM's om het sleutelmateriaal op te slaan dat wordt gebruikt om grote zonefiles te ondertekenen. OpenDNSSEC is een open-source tool die het ondertekenen van DNS-zonebestanden beheert.
Op 27 januari 2007 zijn ICANN en Verisign, met steun van het Amerikaanse ministerie van Handel, begonnen met de implementatie van DNSSEC voor DNS-rootzones. Root-handtekeningdetails zijn te vinden op de Root DNSSEC-website.

### Cryptocurrency portemonnee

Privésleutels van cryptocurrency kunnen worden opgeslagen in een cryptocurrency-portemonnee op een HSM.