Inhoud

Inleiding

Achtergrondinformatie

Voorwaarden

Vereisten

Gebruikte componenten

Probleem

Oplossing

Verificatie

Inleiding

Dit document beschrijft hoe u problemen kunt oplossen bij de installatie van een PKCS (Public Key Cryptography Standards)#12-bestand met PBE-algoritmen (Non-Federal Information Processing Standard (FIPS) die compatibel zijn met Wachtwoord voor encryptie, via Cisco Firepower Management Center (FMC). Het legt een procedure uit om het te identificeren en een nieuwe volgzame bundel met OpenSSL te creëren.

Achtergrondinformatie

De Cisco Firepower Threat Defense (FTD) ondersteunt naleving van FIPS 140 wanneer u Common Criteria (CC) of Unified Capability Appliance Apple Products List (UCAP) op een beheerd apparaat inschakelen. Deze configuratie is onderdeel van het beleid voor FMC Platform Settings. Nadat van toepassing, toelaten de velden bevel in de show in werking stellen -in werking stellen -configuratie uitvoer van FTD.

PKCS#12 definieert een bestandsindeling die wordt gebruikt om een privésleutel en het respectievelijke identiteitsbewijs te bundelen. Er is de mogelijkheid om alle wortel- of tussencertificaten die tot de validatieketen behoren, op te nemen. PBE-algoritmen beschermen de certificaten en privé-sleuteldelen van het PKCS#12-bestand. Als resultaat van de combinatie van het berichtenverificatieschema (MD2/MD5/SHA1) en het Encryptieprogramma (RC2/RC4/DES) zijn er meerdere PBE-algoritmen, maar de enige die FIPS-compatibel is, is PBE-SHA1-3DES.

Opmerking: Om meer over FIPS in Cisco producten te weten te komen navigeer aan FIPS 140.

Opmerking: Om meer te weten te komen over de beveiligingscertificatienormen die beschikbaar zijn voor FTD en FMC, navigeer naar het hoofdstuk van de FMC Configuration Guide van de Security Certifications Standards.

Voorwaarden

Vereisten

Cisco raadt kennis van de volgende onderwerpen aan:

- PKI-infrastructuur

- OpenSSL

Gebruikte componenten

De informatie in dit document is gebaseerd op deze softwareversies:

- FMCv - 6.5.0.4 (bouw 57)

- FTDv - 6.5.0 (bouw 115)

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk levend is, zorg er dan voor dat u de mogelijke impact van om het even welke opdracht begrijpt.

Opmerking: De in dit document beschreven benadering kan worden geïmplementeerd op elk ander platform met een soortgelijke kwestie, bijvoorbeeld een Cisco adaptieve security applicatie (ASA), omdat de kwestie is met het certificaat dat niet-FIPS-compatibel is.

Opmerking: Dit document gaat niet in op de voorwaarde dat de PKCS#12-componenten zelf niet voldoen om andere redenen zoals de Rivest, Shamir, Adleman (RSA)-sleutellengte of het Signature-algoritme dat is gebruikt om het identiteitsbewijs te ondertekenen. In dergelijke gevallen moeten certificaten opnieuw worden afgegeven om te voldoen aan FIPS.

Probleem

Als de FIPS-modus in FTD is ingeschakeld, kan de installatie van certificaten mislukken als de PBE-algoritmen die worden gebruikt om het PKCS#12-bestand te beveiligen niet FIPS-compatibel zijn.

Opmerking: Vind een stap-voor-stap procedure voor het installeren van een PKCS#12-bestand met behulp van het FMC in het gedeelte PKCS12-inschrijving van certificaatinstallatie en -vernieuwing op FTD beheerd door FMC.

Als de certificeringsinstallatie om deze reden niet werkt, debugs onderstaande fout:

firepower# debug crypto ca 14

firepower# show debug

debug crypto ca enabled at level 14

Conditional debug filters:

Conditional debug features:

firepower# PKI[13]: crypto_parsepkcs12, pki_ossl_pkcs12.c:1484

PKI[13]: pki_unpack_p12, pki_ossl_pkcs12.c:1414

PKI[4]: Error unpacking pkcs7 encrypted data

PKI[1]: error:060A60A3:digital envelope routines:FIPS_CIPHERINIT:disabled for fips in fips_enc.c line 143.

PKI[1]: error:06074078:digital envelope routines:EVP_PBE_CipherInit:keygen failure in evp_pbe.c line 203.

PKI[1]: error:23077073:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 algor cipherinit error in p12_decr.c line 93.

PKI[1]: error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error in p12_decr.c line 145.

PKI[4]: pkcs7 encryption algorithm may not be fips compliant

PKI[4]: Error unpacking pkcs12 struct to extract keys and certs

PKI[13]: label: FTDv_C_cert

PKI[13]: TP list is NULL

PKI[13]: label: FTDv_C_cert

PKI[13]: TP list label: FTDv_C_cert

PKI[14]: pki_ossl_set_cert_store_dirty, pki_ossl_certstore.c:38

PKI[13]: crypto_pki_get_ossl_env, pki_ossl.c:41

PKI[13]: label: FTDv_C_cert

PKI[13]: TP list label: FTDv_C_cert

U kunt ook met OpenSSL bevestigen dat de PKCS#12 in het bezit is van niet-conforme FIPS PBE-algoritmen.

OpenSSL> pkcs12 -info -in ftdv_C_.p12 -noout

Enter Import Password:

MAC Iteration 2048

MAC verified OK

PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048

Certificate bag

Certificate bag

PKCS7 Data

Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

In vorige uitvoer zijn er twee PBE-algoritmen, PIWithSHA1and40bitRC2-CBC en PbeWithSHA1and3-KeyTripleDES-CBC, die respectievelijk de certificaten en de privé-toets beschermen. Het eerste is niet FIPS-conform.

Oplossing

De oplossing is om PBE-SHA1-3DES-algoritme te configureren voor zowel certificaat als privé-sleutelbeveiliging. In het bovenstaande voorbeeld hoeft alleen het algoritme te worden gewijzigd. Eerst moet u de Privacy-Enhanced Mail (PEM)-versie van het oorspronkelijke PKCS#12-bestand ophalen met behulp van OpenSSL.

OpenSSL> pkcs12 -in ftdv_C_.p12 -out ftdv_C_.pem

Enter Import Password:

MAC verified OK

Enter PEM pass phrase:

Verifying - Enter PEM pass phrase:

Ten slotte moet u onder opdracht met het FIPS-compatibele PBE-algoritme gebruiken met behulp van het PEM-bestand dat in de vorige stap is verkregen om een gloednieuw PKCS#12-bestand te genereren:

OpenSSL> pkcs12 -certpbe PBE-SHA1-3DES -export -in ftdv_C_.pem -out ftdv_C_FIPS_compliant.p12

Enter pass phrase for ftdv_C_.pem:

Enter Export Password:

Verifying - Enter Export Password:

unable to write 'random state'

Opmerking: Als het algoritme om de privé sleutel te beschermen ook moet worden veranderd, kunt u het sleutelsleutelwoord toevoegen gevolgd door PBE-SHA1-3DES aan de zelfde opdracht: pkcs12-cerpbe PBE-SHA1-3DES-keypbe PBE-SHA1-3DES-export - uit<PKCS12 cert file>.

Verificatie

Gebruik dezelfde opdracht OpenSSL om informatie te verkrijgen over de PKCS#12-bestandsstructuur om te bevestigen dat er FIPS-algoritmen in gebruik zijn:

OpenSSL> pkcs12 -info -in ftdv_C_FIPS_compliant.p12 -noout

Enter Import Password:

MAC Iteration 2048

MAC verified OK

PKCS7 Encrypted data: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

Certificate bag

Certificate bag

PKCS7 Data

Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

PKI-debugs geven de uitvoer hieronder weer wanneer certificatie-installatie geslaagd is.

PKI[13]: crypto_parsepkcs12, pki_ossl_pkcs12.c:1484

PKI[13]: pki_unpack_p12, pki_ossl_pkcs12.c:1414

PKI[13]: pki_unpack_bags, pki_ossl_pkcs12.c:1383

PKI[13]: pki_unpack_bag, pki_ossl_pkcs12.c:1313

PKI[13]: add_cert, pki_ossl_pkcs12.c:1284

PKI[13]: add_cert_node, pki_ossl_pkcs12.c:1187

PKI[13]: pki_unpack_bag, pki_ossl_pkcs12.c:1313

PKI[13]: add_cert, pki_ossl_pkcs12.c:1284

PKI[13]: add_cert_node, pki_ossl_pkcs12.c:1187

PKI[13]: pki_unpack_bags, pki_ossl_pkcs12.c:1383

PKI[13]: pki_unpack_bag, pki_ossl_pkcs12.c:1313

PKI[13]: add_key, pki_ossl_pkcs12.c:1252

PKI[13]: add_cert_node, pki_ossl_pkcs12.c:1187

PKI[14]: compare_key_ids, pki_ossl_pkcs12.c:1150

PKI[12]: transfer_p12_contents_to_asa, pki_ossl_pkcs12.c:375

PKI[13]: label: FTDv_C_FIPS_Compliant

PKI[13]: TP list is NULL

CRYPTO_PKI: examining router cert:

CRYPTO_PKI: issuerName=/O=Cisco/OU=TAC/CN=RootCA_C1117

CRYPTO_PKI: subjectname=/CN=ftdv/unstructuredName=C1117_DRIVERAP.driverap.com

CRYPTO_PKI: key type is RSAPKI[13]: GetKeyUsage, pki_ossl_pkcs12.c:278

CRYPTO_PKI: bitValue of ET_KEY_USAGE = a0

CRYPTO_PKI: Certificate Key Usage = GENERAL_PURPOSE

CRYPTO_PKI: adding RSA Keypair

CRYPTO_PKI: adding as a router certificate.

CRYPTO_PKI: InsertCertData: subject name =

30 3b 31 0d 30 0b 06 03 55 04 03 13 04 66 74 64 76 31 2a 30

28 06 09 2a 86 48 86 f7 0d 01 09 02 16 1b 43 31 31 31 37 5f

44 52 49 56 45 52 41 50 2e 64 72 69 76 65 72 61 70 2e 63 6f

6d

CRYPTO_PKI: InsertCertData: issuer name =

30 35 31 0e 30 0c 06 03 55 04 0a 13 05 43 69 73 63 6f 31 0c

30 0a 06 03 55 04 0b 13 03 54 41 43 31 15 30 13 06 03 55 04

03 0c 0c 52 6f 6f 74 43 41 5f 43 31 31 31 37

CRYPTO_PKI: InsertCertData: serial number = 16 | .

CRYPTO_PKI: looking for cert in handle=0x00002abdcb8cac50, digest=

aa 49 1e c2 c1 d5 30 60 4a 88 57 c8 3d 4e 3c 1c | .I....0`J.W.=N<.

CRYPTO_PKI: Cert record not found, returning E_NOT_FOUND

CRYPTO_PKI: Inserted cert into list.PKI[14]: pki_ossl_set_cert_store_dirty, pki_ossl_certstore.c:38

PKI[13]: crypto_pki_get_ossl_env, pki_ossl.c:41

PKI[9]: Cleaned PKI cache successfully

PKI[9]: Starting to build the PKI cache

PKI[4]: No identity cert found for TP: FTDv_C_FIPS_Compliant

PKI[4]: Failed to cache certificate chain for the trustpoint FTDv_C_FIPS_Compliant or none available

PKI[13]: CERT_GetTrustedIssuerNames, vpn3k_cert_api.c:1760

PKI[14]: map_status, vpn3k_cert_api.c:2229

PKI[4]: Failed to retrieve trusted issuers list or no trustpoint configured

PKI[13]: CERT_FreeTrustedIssuerNames, vpn3k_cert_api.c:1782

PKI[13]: crypto_pkcs12_add_sync_record, pki_ossl_pkcs12.c:144

PKI[13]: label: FTDv_C_FIPS_Compliant

PKI[13]: TP list label: FTDv_C_FIPS_Compliant

CRYPTO_PKI(Cert Lookup) issuer="cn=RootCA_C1117,ou=TAC,o=Cisco" serial number=16 | .

CRYPTO_PKI: looking for cert in handle=0x00002abdcb8cac50, digest=

aa 49 1e c2 c1 d5 30 60 4a 88 57 c8 3d 4e 3c 1c | .I....0`J.W.=N<.

CRYPTO_PKI: ID cert in trustpoint FTDv_C_FIPS_Compliant successfully validated with CA cert.

CRYPTO_PKI: crypto_pki_authenticate_tp_cert()

CRYPTO_PKI: trustpoint FTDv_C_FIPS_Compliant authentication status = 0

CRYPTO_PKI: InsertCertData: subject name =

30 35 31 0e 30 0c 06 03 55 04 0a 13 05 43 69 73 63 6f 31 0c

30 0a 06 03 55 04 0b 13 03 54 41 43 31 15 30 13 06 03 55 04

03 0c 0c 52 6f 6f 74 43 41 5f 43 31 31 31 37

CRYPTO_PKI: InsertCertData: issuer name =

30 35 31 0e 30 0c 06 03 55 04 0a 13 05 43 69 73 63 6f 31 0c

30 0a 06 03 55 04 0b 13 03 54 41 43 31 15 30 13 06 03 55 04

03 0c 0c 52 6f 6f 74 43 41 5f 43 31 31 31 37

CRYPTO_PKI: InsertCertData: serial number = 01 | .

CRYPTO_PKI: looking for cert in handle=0x00002abdcb8cac50, digest=

17 9d 0e b0 15 9d cd a2 5a 01 95 bf c6 8c 4f 2e | ........Z.....O.

CRYPTO_PKI: Cert record not found, returning E_NOT_FOUND

CRYPTO_PKI: Inserted cert into list.PKI[14]: pki_ossl_set_cert_store_dirty, pki_ossl_certstore.c:38

PKI[13]: crypto_pki_get_ossl_env, pki_ossl.c:41

PKI[9]: Cleaned PKI cache successfully

PKI[9]: Starting to build the PKI cache

CRYPTO_PKI(Cert Lookup) issuer="cn=RootCA_C1117,ou=TAC,o=Cisco" serial number=16 | .

CRYPTO_PKI: looking for cert in handle=0x00002abdcb8cac50, digest=

aa 49 1e c2 c1 d5 30 60 4a 88 57 c8 3d 4e 3c 1c | .I....0`J.W.=N<.

PKI[7]: Get Certificate Chain: number of certs returned=2

PKI[13]: CERT_GetDNbyBuffer, vpn3k_cert_api.c:993

PKI[14]: map_status, vpn3k_cert_api.c:2229

PKI[7]: Built trustpoint cache for FTDv_C_FIPS_Compliant

PKI[13]: CERT_GetTrustedIssuerNames, vpn3k_cert_api.c:1760

PKI[14]: map_status, vpn3k_cert_api.c:2229

PKI[9]: Added 1 issuer hashes to cache.

PKI[13]: CERT_FreeTrustedIssuerNames, vpn3k_cert_api.c:1782

PKI[13]: crypto_pkcs12_free_sync_record, pki_ossl_pkcs12.c:113

PKI[13]: label: FTDv_C_FIPS_Compliant

PKI[13]: TP list label: FTDv_C_FIPS_Compliant

PKI[13]: label: FTDv_C_FIPS_Compliant

PKI[13]: TP list label: FTDv_C_FIPS_Compliant

PKI[14]: pki_ossl_set_cert_store_dirty, pki_ossl_certstore.c:38

PKI[13]: crypto_pki_get_ossl_env, pki_ossl.c:41

PKI[13]: label: FTDv_C_FIPS_Compliant

PKI[13]: TP list label: FTDv_C_FIPS_Compliant

CRYPTO_PKI: certificate data

<omitted output>

CRYPTO_PKI: status = 0: failed to get extension from cert

CRYPTO_PKI: certificate data

<omitted output>

PKI[13]: label: FTDv_C_FIPS_Compliant

PKI[13]: TP list label: FTDv_C_FIPS_Compliant

Ten slotte toont het FMC zowel CA- als identiteitsbewijzen zoals beschikbaar: