Explaining CAdES-BES
A CAdES-BES (CMS Advanced Electronic Signature – Basic Electronic Signature) signature builds on CMS (Cryptographic Message Syntax, i.e., PKCS#7 or RFC 5652) and must include certain features to be compliant with the ETSI TS 101 733 standard.
Required Features of a CAdES-BES Signature
To qualify as CAdES-BES, the CMS signature must include at least the following:
1. CMS SignedData
structure
- Standard CMS container used for detached or attached signatures.
2. A valid CMS signature
- Uses a recognized signature algorithm (e.g., RSA, ECDSA).
- The
signerInfo
structure must contain a proper digital signature over the signed attributes.
3. The signer's certificate (signerInfo.sid
)
- Must be included in the
certificates
set of the CMS structure. - This allows signature validation without external certificate retrieval.
4. Signed Attributes (must be present in signedAttrs
)
Attribute | Required? | Description |
---|---|---|
content-type |
Required | Identifies the type of content being signed. |
message-digest |
Required | Digest (hash) of the content being signed. |
signing-certificate or signing-certificate-v2 |
Required | Links the signature to the exact signing certificate, including a hash of the certificate. |
signing-time |
Optional (but recommended) | Indicates when the signature was generated. |
5. DER encoding
- The CMS structure must be encoded using DER (Distinguished Encoding Rules), not BER.
What CAdES-BES Does *Not* Include
CAdES-BES does not include:
- Timestamps (CAdES-T)
- Long-term validation data like revocation info (CAdES-LT, CAdES-LTA)
- Archive-level attributes
Summary
A CAdES-BES signature is a CMS/PKCS#7 signature that includes the signer's certificate and specific signed attributes (content-type
, message-digest
, signing-certificate
) and is encoded using DER. It's the minimal profile for an advanced electronic signature under EU standards.