FIPS 140 ("Federal Information Processing Standard") is een reeks beveiligingsnormen die door de Amerikaanse overheid zijn gepubliceerd en die de beveiligingsvereisten voor de evaluatie van cryptografische modules specificeren. FIPS 140-3 is de nieuwste versie; deze versie van FIPS bevat noodzakelijke wijzigingen met betrekking tot het ontwerp, de implementatie en de werking van een cryptografische module.
Wat is FIPS 140-3?
FIPS 140-3 is een standaard die is ontwikkeld door het National Institute of Standards and Technology (NIST) en Communications Security Establishment Canada (CSEC) om de vereisten te definiëren waaraan een cryptografische module moet voldoen om gevoelige informatie te beschermen.
FIPS 140-3 vervangt FIPS 140-2 en beschrijft bijgewerkte federale beveiligingsvereisten voor cryptografische modules. De nieuwe normen zijn afgestemd op ISO/IEC 19790:2012(E) en bevatten wijzigingen in de bijlagen die zijn toegestaan door de Cryptografische modulevalidatieprogramma (CMVP), als validatie-autoriteit.
FIPS 140-3 is op 22 september 2019 van kracht geworden, waardoor CMVP vanaf september 2020 validatieaanvragen onder de nieuwe regeling mag accepteren. CMVP blijft cryptografische modules valideren volgens de beveiligingsvereisten voor cryptografische modules van FIPS 140-2 (Federal Information Processing Standard) tot 22 september 2021.
Status van FIPS 140-2
FIPS 140-2-modules kunnen 5 jaar na validatie actief blijven of tot 21 september 2026, wanneer de FIPS 140-2-validaties naar de historische lijst worden verplaatst. Zelfs op de historische lijst ondersteunt CMVP de aankoop en het gebruik van deze modules voor bestaande systemen. CMVP raadt kopers aan om alle modules die op de zoekpagina voor gevalideerde modules voorkomen en aan hun vereisten voldoen, te bekijken voor de beste selectie cryptografische modules, ongeacht of de modules gevalideerd zijn volgens FIPS 140-2 of FIPS 140-3.
Overgangsschema van FIPS 140-2 naar FIPS 140-3
Het tijdstip van de overgang wordt hieronder weergegeven:
| Datum | Activiteit |
|---|---|
| 22 maart 2019 | FIPS 140-3 goedgekeurd |
| 22 september 2019 | Ingangsdatum FIPS 140-3 Concepten van SP 800-140x (openbaar commentaar gesloten op 12-9-2019) |
| 20 maart 2020 | Publicatie van SP 800-140x-documenten |
| May 20, 2020 | Bijgewerkte CMVP-programmabeheerhandleiding voor FIPS 140-2 |
| July 1, 2020 | Testercompetentie-examen bijgewerkt met FIPS 140-3 |
| 21 september 2020 | FIPS 140-3 Implementatierichtlijnen CMVP-beheerhandleiding voor FIPS 140-3 |
| 22 september 2020 | CMVP accepteert FIPS 140-3-inzendingen |
| 21 september 2021 | CMVP stopt met het accepteren van FIPS 140-2-inzendingen voor nieuwe validatiecertificaten |
| 21 september 2026 | De resterende FIPS 140-2-certificaten worden verplaatst naar de historische lijst |
Tabel: Overgangsschema
FIPS 140-3 goedgekeurde cryptografische algoritmen:
Als we het over een door FIPS goedgekeurd algoritme hebben, verwijzen we doorgaans naar een algoritme of techniek die in een document is vastgelegd. FIPS or NIST aanbeveling of aangenomen in een FIPS- of NIST-aanbeveling (gespecificeerd in een bijlage of in een document waarnaar wordt verwezen in de FIPS- of NIST-aanbeveling).
Blokcijferalgoritmen:
Er zijn verschillende blokcijferalgoritmen gespecificeerd voor gebruik door de federale overheid. De goedkeuringsstatus van de blokcijferversleutelings-/ontsleutelingsmodi is weergegeven in de onderstaande tabel:
| Algoritme | Status |
|---|---|
| TDEA-encryptie met twee sleutels | Verworpen |
| TDEA-decodering met twee sleutels | Erfelijk gebruik |
| Drie-sleutel TDEA-encryptie | Verouderd tot 2023 Niet meer toegestaan na 2023 |
| Drie-sleutel TDEA-decodering | Erfelijk gebruik |
| SKIPJACK-codering | Verworpen |
| SKIPJACK-decodering | Erfelijk gebruik |
| AES-128-codering en -decodering | Geaccepteerd |
| AES-192-codering en -decodering | Geaccepteerd |
| AES-256-codering en -decodering | Geaccepteerd |
Tabel: Goedkeuringsstatus van symmetrische algoritmen die worden gebruikt voor encryptie en decryptie
Digitale handtekeningen:
Digitale handtekeningen worden gebruikt om de authenticatie van de oorsprong en de integriteit van de gegevens te garanderen. DSA, ECDSA en RSA zijn toegestaan, maar alleen met bepaalde parameters. overgangsbegeleiding geeft een handig overzicht, hieronder weergegeven:
| Digitaal handtekeningproces | Status |
|---|---|
| Generatie van digitale handtekeningen | |
| <112 bits beveiligingssterkte: DSA: (L, N) ≠ (2048, 224), (2048, 256) of (3072, 256) ECDSA: len(n) < 224 RSA: len(n) < 2048 | Verworpen |
| ≥ 112 bits beveiligingssterkte: DSA: (L, N) = (2048, 224), (2048, 256) of (3072, 256) ECDSA of EdDSA: len(n) ≥ 224 RSA: len(n) ≥ 2048 | Geaccepteerd |
| Digitale handtekeningverificatie | |
| < 112 bits beveiligingssterkte: DSA32: ((512 ≤ L < 2048) of (160 ≤ N < 224)) ECDSA: 160 ≤ len(n) < 224 RSA: 1024 ≤ len(n) < 2048 | Erfelijk gebruik |
| ≥ 112 bits beveiligingssterkte: DSA: (L, N) = (2048, 224), (2048, 256) of (3072, 256) ECDSA en EdDSA: len(n) ≥ 224 RSA: len(n) ≥ 2048 | Geaccepteerd |
Hash-functies:
Een hashfunctie neemt een groep tekens (een zogenaamde sleutel) en koppelt deze aan een waarde van een bepaalde lengte (een zogenaamde hashwaarde of hash). De hashwaarde is representatief voor de oorspronkelijke tekenreeks, maar is normaal gesproken kleiner dan het origineel.
Een hashfunctie wordt gebruikt om een gecondenseerde weergave van de invoer te produceren, waarbij een invoer van willekeurige lengte wordt gebruikt als uitvoerwaarde met een vooraf bepaalde lengte. Hashfuncties worden gebruikt bij het genereren en verifiëren van digitale handtekeningen, voor het afleiden van sleutels, voor het genereren van willekeurige getallen, bij het berekenen van berichtauthenticatiecodes en voor toepassingen die alleen hash-functies gebruiken.
De Richtlijnen voor de overgang document vat samen wanneer SHA-1, SHA-2 etc. gebruikt kan worden.
| Hash-functie | Status |
|---|---|
| SHA-1 | |
| Generatie van digitale handtekeningen | Niet toegestaan, behalve waar specifiek toegestaan door NIST-protocolspecifieke richtlijnen |
| Digitale handtekeningverificatie | Erfelijk gebruik |
| Niet-digitale handtekeningtoepassingen | Geaccepteerd |
| SHA-2-familie (SHA224, SHA-256, SHA-384, SHA-512, SHA-512/224 en SHA-512/256) | Aanvaardbaar voor alle hashfunctietoepassingen |
| SHA-3-familie (SHA3-224, SHA3-256, SHA3-384 en SHA3-512) | Aanvaardbaar voor alle hashfunctietoepassingen |
| TupleHash en ParallelHash | Aanvaardbaar voor de doeleinden zoals gespecificeerd in SP800-185 |
Tabel: Goedkeuringsstatus van hashfuncties
FIPS 140-2 versus FIPS 140-3
| Specificaties | FIPS 140-2 | FIPS 140-3 |
|---|---|---|
| Cryptografische module | De FIPS 140-2-standaard (uitgegeven in 2001) werd geschreven met het idee dat alle modules hardwaremodules waren. Later werden verschillende typen modules (hybride, software en firmware) toegevoegd en gedefinieerd in de IG (IG's 1.9, 1.16 en 1.17). | FIPS 140-3 omvat de hardwaremodule, firmwaremodule, softwaremodule, hybride softwaremodule en hybride firmwaremodule |
| Cryptografische grens | FIPS 140-2 IG 1.9 beperkte hybride modules tot een FIPS 140-2 Level 1-validatie | Er zijn ook geen beperkingen ten aanzien van het niveau waarop een hybride module in de nieuwe norm kan worden gevalideerd. |
| rollen | De FIPS 140-2-norm (paragraaf 4.3.1) vereist dat een module zowel de rol van crypto-functionaris als een gebruikersrol ondersteunt, en dat de ondersteuning van een onderhoudsrol optioneel is. | FIPS 140-3 kent nog steeds dezelfde drie rollen, maar alleen de rol van crypto-functionaris is vereist (paragraaf 7.4.2). De gebruikersrol en de onderhoudsrol zijn nu optioneel. |
| authenticatie | ISO19790: Niveau 1 - geen authenticatievereisten Niveau 2 – minimale rolgebaseerde authenticatie Niveau 3 – identiteitsgebaseerde authenticatie | ISO19790: FIPS 140-3 is vergelijkbaar met FIPS 140-2 voor authenticatie op beveiligingsniveaus 1-3. Niveau 4 is ook toegevoegd in FIPS 140-3. Voor authenticatie op niveau 4 moet dit gebaseerd zijn op multi-factor identiteit. |
Tabel: Goedkeuringsstatus van symmetrische algoritmen die worden gebruikt voor encryptie en decryptie
Overzicht:
FIPS 140-3 is definitief goedgekeurd en gelanceerd als de nieuwste standaard voor de beveiligingsevaluatie van cryptografische modules. Het bestrijkt een breed spectrum aan bedreigingen en kwetsbaarheden en definieert de beveiligingsvereisten vanaf de initiële ontwerpfase tot aan de uiteindelijke operationele implementatie van een cryptografische module. De vereisten van FIPS 140-3 zijn voornamelijk gebaseerd op de twee reeds bestaande internationale normen ISO/IEC 19790:2012 "Beveiligingsvereisten voor cryptografische modules" en ISO 24759:2017 "Testvereisten voor cryptografische modules".
Tijdlijnen FIPS 140-3:

De tijdlijn: Tijdlijnen FIPS 140-3:
Bronnen
www.nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf
www.csrc.nist.gov/projects/cryptographic-module-validation-program
