Document toolboxDocument toolbox

Sign and encrypt engine descriptors

This article is new for Identity Manager 5.0.1.

Descriptor overview

The engine’s descriptors are the following:

Descriptor

Description

Descriptor

Description

encryptedFields

Encryption and decryption of fields in the Identity Manager database

configZipEncrypter

Encryption of the configuration files

configZipSigner

Signing and validation of the configuration files

objectHistorySigner

Signing and verification of the object history

signEmailDescriptor

Signing of emails

hermodDeviceEnc

Creation of device encryption certificates that are used in Smart ID messaging

SelfServiceJWTSigner

Authentication of Smart ID Self-Service users to the Identity Manager backend

ContentProviderJWSSigner

Creation of JWS signatures used for Smart ID messaging content provider API

idopteAuthentication

Initial handshake with Idopte client-side middleware

insideClientAuth

Authentication to the IN Groupe Inside Server

att_*

Attestation for provisioning to Smart ID Mobile / Desktop Apps

(arbitrary name)

Decryption of PIN blobs from pre-personalized smart-cards created with the Personal Desktop Client

Each descriptor is described in detail in the sections below, including requirements how it shall be bootstrapped.

Certain descriptors are used for optional features. If a certain feature (for example email signing) is not used in a given deployment, then you may configure the descriptor in question with a placeholder. Any PKCS#12 file containing a self-signed keypair will be sufficient in this case.

EncryptedFields

Descriptor included in default configuration.

Correct bootstrapping is required for productive use.

Only dev- and test systems may use placeholders (for example created with bootstrap.zip package or the corresponding docker container).

Use case

Encryption and decryption of fields in the Identity Manager database

Configured in the following applications

  • Identity Manager Admin

  • Identity Manager Operator

Configured in these special-case tools

  • batch_secretfieldstore_change_encryption_key

    (repair tool for secret fields)

  • batch_migration_smartact_to_prime

    (for migration of data from Identity Manager's/PRIME's predecessor SmartAct, it has additional requirements for decrypting secret fields and config entries from the source system)

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Not supported, always uses version 1

Supported asymClipher values

For HSM:

  • RSA/ECB/OAEPWithSHA-384AndMGF1Padding

  • RSA/ECB/OAEPWithSHA-512AndMGF1Padding

For PKCS#12:

  • RSA/None/OAEPWithSHA384AndMGF1Padding

  • RSA/None/OAEPWithSHA512AndMGF1Padding

General requirements

  • Placeholder keys/certs forbidden for productive use

    • Confidentiality of database secrets would be at risk

    • The key can only be changed with the tool batch_secretfieldstore_change_encryption_key once the first secret is stored in the database

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • No special requirements, as only the key-pair is used

    • May be self-signed

    • Key usage is not checked (recommended for informational purposes: set dataEncipherment)

    • Validity is ignored

    • Certificate does not need to be trusted

ConfigZipEncrypter

Descriptor included in default configuration.

Correct bootstrapping may be required for productive use, depending on the use case.

Dev- and test systems may use placeholders (for example created with bootstrap.zip package or the corresponding docker container).

Use case

Encryption of the configuration files

Configured in the following applications

  • Identity Manager Admin

  • Identity Manager Operator

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Not supported, always uses version 1

Supported asymClipher values

For HSM:

  • RSA/ECB/OAEPWithSHA-384AndMGF1Padding

  • RSA/ECB/OAEPWithSHA-512AndMGF1Padding

For PKCS#12:

  • RSA/None/OAEPWithSHA384AndMGF1Padding

  • RSA/None/OAEPWithSHA512AndMGF1Padding

General requirements

  • Placeholder allowed only if config ZIP encryption is disabled

    • After changing the key you cannot decrypt previously exported config ZIPs that use encryption

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • No special requirements, as only the key-pair is used

    • May be self-signed

    • Key usage is not checked (recommended for informational purposes: set dataEncipherment + keyEncipherment)

    • Validity is ignored

    • Certificate does not need to be trusted

ConfigZipSigner

Use case

Signing and validation of the configuration files

Configured in the following applications

  • Identity Manager Admin

  • Identity Manager Operator

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Possible, but unnecessary. (It is sufficient that the certificate that signed the old configs is trusted via the IDM truststore.)

Supported digest value

(Selecting SHA-384 or SHA-512 only affects MANIFEST.MF, other parts use SHA-256 always.)

  • SHA-256

General requirements

  • Placeholder allowed only if config ZIP encryption is disabled

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • If key usage extension is critical, then digitalSignature is required

  • Issuing CA cert must be in IDM truststore

  • Must not be self-signed

  • Validity considerations:

    • if expired download is blocked unless ZIP signing is disabled

    • if expired config upload will fail with the message "Verification failed. The certificate has expired."

  • Issues if not configured as above:

    • export is blocked unless unless ZIP signing is disabled

    • verification does not work, ZIP appears unsigned

ObjectHistorySigner

Use case

Signing and verification of the object history

Configured in the following applications

  • Identity Manager Admin (technically not used here, but required for startup due to bean requirements - subject to change in future releases)

  • Identity Manager Operator

Configured in these special-case tools

  • batch_re-sign_history

    (repair tool for history signature)

  • batch_migration_smartact_to_prime

    (for migration of data from Identity Manager's/PRIME's predecessor SmartAct)

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Supported (signatures created with old versions can still be verified)

Supported digest values

  • SHA-256

  • SHA-384

  • SHA-512

General requirements

  • Placeholder allowed only if history verification is disabled (via activitiHistoryCleanerJobTrigger.cronExpression set to a date in the distant future. See List of Identity Manager system properties and Quartz CronTrigger tutorial for more information)

    • Integrity of history signature would be as risk

    • Re-signing requires use of the batch_re-sign_history tool once the first history entry is created

    • If you plan on enabling it at a later date, it is recommended not to use a placeholder

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • If key usage extension is critical, then digitalSignature is required

  • May be self-signed

  • Validity is ignored

  • Certificate does not need to be trusted

SignEmailDescriptor

Use case

Send signed emails from IDM

Required

When email signing is configured

Configured in the following application

  • Identity Manager Operator

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Supported, but unnecessary

Supported algorithm values

For RSA keys only:

  • SHA256withRSA  

  • SHA384withRSA

  • SHA512withRSA

For ECC keys only:

  • SHA256withECDSA

  • SHA384withECDSA

  • SHA512withECDSA

General requirements

  • Placeholders allowed only if email signing is not used

    • Email verification will fail if not issued by a trusted S/MIME CA

    • Integrity of emails sent by IDM may be at risk if placeholder key is used

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096

  • ECC NIST P-256

  • ECC NIST P-384

  • ECC NIST P-521

Certificate requirements

hermodDeviceEnc

Use case

Generate dummy certificate for transient key-pairs generated on a target device when provisioning Smart ID Mobile/Desktop App profiles (the certificates themselves are merely used as transport container for the key-usage parameter)

Configured in the following application

  • Identity Manager Operator

Storage

  • pkcs12

Versioning

Possible, but unnecessary

Supported algorithm values

For RSA keys only:

  • SHA256withRSA  

  • SHA384withRSA

  • SHA512withRSA

For ECC keys only:

  • SHA256withECDSA

  • SHA384withECDSA

  • SHA512withECDSA

General requirements

  • Placeholders allowed

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096

  • ECC NIST P-256 (best performance)

  • ECC NIST P-384

  • ECC NIST P-521

Certificate requirements

  • May be self-signed

  • Validity is ignored

  • Key usage is not checked (recommended for informational purposes: set digitalSignature)

  • Certificate does not need to be trusted

SelfServiceJWTSigner

Use case

Authentication of Smart ID Self-Service users to the Identity Manager backend

Configured in the following applications

  • Identity Manager Operator

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Possible, but unnecessary.

General requirements

  • Placeholder keys forbidden for productive use

    • Even if Smart ID Self-Service is not deployed the related REST endpoints could face the risk of unauthenticated access

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • May be self-signed

  • Validity is ignored

  • Key usage is not checked (recommended for informational purposes: set digitalSignature)

  • Certificate does not need to be trusted

ContentProviderJWSSigner

Use case

Signing content for Visual ID provisioning to Smart ID Mobile App

Configured in the following applications

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Possible, but unnecessary.

General requirements

  • Placeholder allowed only if Visual ID is not used

    • If the certificate configured here is not trusted by the end-user (mobile-) device, then Visual ID provisioning will fail

    • Forgery of Visual ID possible if placeholder key is used and also trusted by the end-user device

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • Must not be self-signed

  • Key usage is not checked (recommended for informational purposes: set digitalSignature)

  • Issuing CA cert must be trusted by the app onto which to provision Visual IDs

  • Validity: at your discretion (make sure you do not forget to renew before the expiry date!), validity is checked on the SDK side

  • Versioning not needed (always uses the default (that is, highest) version)

Misc Attestation Key Descriptors (att_…)

Default descriptor names

  • att_external-attestation-1 (mobile only)

  •  att_external-attestation-2 (mobile only)

  •  att_external-attestation-3 (mobile only)

  •  att_external-attestation-4 (mobile only)

  •  att_ATTESTATION (mobile+desktop, default)

Use case

  • Verify Certification Signing Requests (CSR) from Smart ID Mobile/Smart ID Desktop App.

  • Optionally limit profile provisioning with Smart ID Mobile/Smart ID Desktop App to certain devices, for example company devices. This can be done by using Mobile/Desktop apps with custom private keys and configuring the corresponding public keys in Identity Manager (by default Identity Manager includes certificates for the built-in keys of any Mobile and Desktop App installation)

Configured in the following applications

  • Identity Manager Operator

  • Identity Manager Admin (technically not used here, but required for startup due to bean requirements - subject to change in future releases)

Storage

  • HSM (recommended)

  • pkcs12

Versioning

Supported

General requirements

  • Default certificates do not need to be changed, unless you want to limit profile provisioning to certain devices

  • No private keys is configured for Identity Manager, only each public key inside a certificate

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • When replacing, generated via tooling shown here: Configure custom attestation keys

  • Verification only uses the key, no part of the certificate is considered

  • Key usage is not checked (recommended for informational purposes: set digitalSignature)

  • Validity is ignored

idopteAuthentication

Use case

Initial handshake with Idopte client-side middleware, see Encoding using Idopte middleware in Identity Manager

Configured in the following application

  • Identity Manager Operator

Storage

  • pkcs12

Versioning

Not supported (always uses the default (that is, highest) version

Supported algorithm values

  • NONEwithRSA

General requirements

  • Descriptor can be omitted entirely (not even a placeholder needed) if Idopte middleware is not used, otherwise correct certificate and keypair is required

  • PKI card encoding via the Idopte middleware will fail if missing or configured incorrectly

Key requirements

Supported types

  • RSA 2048

Certificate requirements

  • Idopte webapp cert, issued by Idopte based on CSR for a customer-generated keypair

  • One customer-specific SAN URI (does not have to point to an existing website), for example https://idopte.customer.com (using hosts like localhost or 127.x.y.z is discouraged, as it severely restricts the maximum validity period of the certificate Idopte can issue)

  • Validity: defined by the Idopte CA

insideClientAuth

Use case

Authenticate to the IN Groupe Inside Server, which performs certain cryptographic operations on behalf of IDM when using the Idopte middleware (see Encoding using Idopte middleware in Identity Manager)

Configured in the following applications

  • Identity Manager Operator

Storage

  • pkcs12

Versioning

Not needed

General requirements

  • Descriptor can be omitted entirely (not even a placeholder needed) if Idopte middleware is not used, otherwise correct certificate and keypair is required

  • PKI card encoding via the Idopte middleware will fail if missing or configured incorrectly

  • Algorithm attribute not used

    •  (We only use certificate and private key from the descriptor)

Key requirements

Supported types

  • RSA 2048

  • RSA 3072

  • RSA 4096 (recommended)

Certificate requirements

  • Validity DOES matter, connection to Inside server will fail when expired

  • Recommend to use a CA, unclear if self-signed certificates work

  • Must be trusted by Inside server

  • Key usage: digitalSignature

Pin-Blob Decryption Descriptors

Descriptor names

Can be any descriptor listed in the pinBlobDecryptor.keyDescriptorNames property of system.properties (or its docker counterpart)

Use case

Decrypting pin-blobs from pre-personalized cards to for example print pin letters for them (see Encodings using Personal Desktop Client middleware in Identity Manager (section "Read encrypted PINs")

Configured in the following applications

  • Identity Manager Operator

Storage

  • pkcs12

Versioning

Not needed

Supported algorithm values

  • RSA

General requirements

  • By default the property is empty, hence no descriptors  are needed, unless the feature is required

Key requirements

Supported types

  • RSA 2048

Certificate requirements

  • Issued by Nexus Certificate Manager

  • Validity ignored by IDM

  • Does not need to be trusted by IDM

  • Key usage is not checked (recommended for informational purposes: set dataEncipherment + keyEncipherment)

Additional information

For more information, see Encrypt configuration files in Identity Manager.

 

Copyright 2024 Technology Nexus Secured Business Solutions AB. All rights reserved.
Contact Nexus | https://www.nexusgroup.com | Disclaimer | Terms & Conditions