|
PKCS7/CMS always has a the issuer serial number to identify
and retrieve a certificate (from a local store or whatever) so that it is
not essential to include a certificate or certificate chain.
While
it is normal to check or verify signer certificate validity with respect to a
site's trusted roots no matter how a certificate is retrieved (so
including or not including a certificate is not a security gap), two
considerations point to opposite conclusions on including the
certificate/certificate chain. First, saving bandwidth favors omitting
the certificate and chain. Second, having the certificates in the
message may for some implementations speed up some message processing
operations.
An
application should be able to deal with either
case.
RFC 2633 is the operative RFC that is cited in AS2 and should
also be consulted.
See for example section 3.7 which says:
A sending agent that signs messages MUST have a certificate for
the
signature so that a receiving agent can verify the signature. There are many ways of getting certificates, such as through an exchange with a certificate authority, through a hardware token or diskette, and so on. S/MIME v2 [SMIMEV2] specified a method for "registering"
public keys
with certificate authorities using an application/pkcs10 body part. The IETF's PKIX Working Group is preparing another method for requesting certificates; however, that work was not finished at the time of this memo. S/MIME v3 does not specify how to request a certificate, but instead mandates that every sending agent
already
has a certificate. Standardization of certificate management is being pursued separately in the IETF. And between 1999, when that was published, and now, the
situation remains about the same on PKI setup, alignment, and
maintenance.
So, if
you are an implementer, do not depend on receiving a cert chain in the message
whose signature you will be checking.
As far
as sending certificates, implementers might be well advised to be able to
configure their software to either include or omit.
The
choice of a default behavior is not specified in AS2. But the motto "Be
conservative in what you send, liberal in what you can
receive"
probably favors including the cert chain, and then allowing an
optimization to omit for bandwidth conservation where it is not
necessary.
|