draft-ietf-smime-domsec-04.txt   draft-ietf-smime-domsec-05.txt 
INTERNET-DRAFT T Dean INTERNET-DRAFT T Dean
draft-ietf-smime-domsec-04.txt W Ottaway draft-ietf-smime-domsec-05.txt W Ottaway
Expires 8th September 2000 DERA Expires 26th November 2000 DERA
Domain Security Services using S/MIME Domain Security Services using S/MIME
Status of this memo Status of this memo
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of section 10 of RFC2026. Internet-Drafts are working provisions of section 10 of RFC2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working its working groups. Note that other groups may also distribute working
documents as Internet-Drafts. documents as Internet-Drafts.
skipping to change at line 35 skipping to change at line 35
Abstract Abstract
This document describes how the S/MIME protocol can be processed and This document describes how the S/MIME protocol can be processed and
generated by a number of components of a communication system, such as generated by a number of components of a communication system, such as
message transfer agents, guards and gateways to deliver security message transfer agents, guards and gateways to deliver security
services. These services are collectively referred to as 'Domain services. These services are collectively referred to as 'Domain
Security Services'. The mechanisms described in this document are Security Services'. The mechanisms described in this document are
designed to solve a number of interoperability problems and technical designed to solve a number of interoperability problems and technical
limitations that arise when different security domains wish to limitations that arise when different security domains wish to
communicate securely - for example when two domains use incompatible communicate securely, for example when two domains use incompatible
messaging technologies such as X.400 and SMTP/MIME. This document is messaging technologies such as X.400 and SMTP/MIME, or when a single
also applicable to organisations and enterprises that have internal PKIs domain wishes to communicate securely with one of its members residing
which are not accessible by the outside world, but wish to interoperate on an untrusted domain. The scenarios covered by this document are
securely using the S/MIME protocol. domain to domain, individual to domain and domain to individual
communications. This document is also applicable to organisations and
enterprises that have internal PKIs which are not accessible by the
outside world, but wish to interoperate securely using the S/MIME
protocol.
This draft is being discussed on the 'ietf-smime' mailing list. To This draft is being discussed on the 'ietf-smime' mailing list. To
subscribe, send a message to: subscribe, send a message to:
ietf-smime-request@imc.org ietf-smime-request@imc.org
with the single word with the single word
subscribe subscribe
in the body of the message. There is a Web site for the mailing list at in the body of the message. There is a Web site for the mailing list at
<http://www.imc.org/ietf-smime/>. <http://www.imc.org/ietf-smime/>.
Acknowledgements Acknowledgements
Significant comments were made by Trevor Freeman, Russ Housley, Significant comments were made by Luis Barriga, Greg Colla, Trevor
Dave Kemp, Jim Schaad, Greg Colla and Michael Zolotarev. Freeman, Russ Housley, Dave Kemp, Jim Schaad and Michael Zolotarev.
1. Introduction 1. Introduction
The S/MIME [1] series of standards define a data encapsulation format The S/MIME [1] series of standards define a data encapsulation format
for the provision of a number of security services including data for the provision of a number of security services including data
integrity, confidentiality, and authentication. S/MIME is designed for integrity, confidentiality, and authentication. S/MIME is designed for
use by messaging clients to deliver security services to distributed use by messaging clients to deliver security services to distributed
messaging applications. messaging applications.
There are many circumstances when it is not desirable or practical to There are many circumstances when it is not desirable or practical to
skipping to change at line 79 skipping to change at line 83
mechanisms which re-format messages, such as using Web browsers. mechanisms which re-format messages, such as using Web browsers.
Message reformatting in the Message Store makes end-to-end encryption Message reformatting in the Message Store makes end-to-end encryption
and signature validation impossible. and signature validation impossible.
2) Message screening and audit: Server-based mechanisms such as 2) Message screening and audit: Server-based mechanisms such as
searching for prohibited words or other content, virus scanning, and searching for prohibited words or other content, virus scanning, and
audit, are incompatible with end-to-end encryption. audit, are incompatible with end-to-end encryption.
3) PKI deployment issues: There may not be any certificate paths between 3) PKI deployment issues: There may not be any certificate paths between
two organisations. Or an organisation may be sensitive about aspects two organisations. Or an organisation may be sensitive about aspects
of its PKI and unwilling to expose them to outside access. For either of its PKI and unwilling to expose them to outside access. Also, full
of these reasons, direct end-to-end signature validation and PKI deployment for all employees, may be expensive, not necessary or
encryption are impossible. impractical for large organisations. For any of these reasons, direct
end-to-end signature validation and encryption are impossible.
4) Heterogeneous Message transports: One organisation using X.400 wishes 4) Heterogeneous Message transports: One organisation using X.400 wishes
to communicate with another using SMTP. Message reformatting at to communicate with another using SMTP. Message reformatting at
gateways makes end-to-end encryption and signature validation gateways makes end-to-end encryption and signature validation
impossible. impossible.
This document describes an approach to solving these problems by This document describes an approach to solving these problems by
providing message security services at the level of a domain or an providing message security services at the level of a domain or an
organisation. This document specifies how these 'domain security organisation. This document specifies how these 'domain security
services' can be provided using the S/MIME protocol. Domain security services' can be provided using the S/MIME protocol. Domain security
services may replace or complement mechanisms at the desktop. For services may replace or complement mechanisms at the desktop. For
example, a domain may decide to provide desktop-to-desktop signatures example, a domain may decide to provide desktop-to-desktop signatures
but domain-to-domain encryption services. Or it may allow desktop-to- but domain-to-domain encryption services. Or it may allow desktop-to-
desktop services for intra-domain use, but enforce domain-based services desktop services for intra-domain use, but enforce domain-based services
for communication with other domains. for communication with other domains.
Domain services can also be used by individual members of a corporation
who are geographically remote and who wish to exchange encrypted and/or
signed messages with their base.
Whether or not a domain based service is inherently better or worse than Whether or not a domain based service is inherently better or worse than
desktop based solutions is an open question. Some experts believe that desktop based solutions is an open question. Some experts believe that
only end-to-end solutions can be truly made secure, while others believe only end-to-end solutions can be truly made secure, while others believe
that the benefits offered by such things as content checking at domain that the benefits offered by such things as content checking at domain
boundaries offers considerable increase in practical security for many boundaries offers considerable increase in practical security for many
real systems. The additional service of allowing signature checking at real systems. The additional service of allowing signature checking at
several points on a communications path is also an extra benefit in many several points on a communications path is also an extra benefit in many
situations. This debate is outside the scope of this document. What is situations. This debate is outside the scope of this document. What is
offered here is a set of tools that integrators can tailor in different offered here is a set of tools that integrators can tailor in different
ways to meet different needs in different circumstances. ways to meet different needs in different circumstances.
skipping to change at line 153 skipping to change at line 162
A security domain is typically protected from direct outside attack by A security domain is typically protected from direct outside attack by
physical measures and from indirect (electronic) attack by a combination physical measures and from indirect (electronic) attack by a combination
of firewalls and guards at network boundaries. The interface between two of firewalls and guards at network boundaries. The interface between two
security domains is termed a 'security boundary'. One example of a security domains is termed a 'security boundary'. One example of a
security domain is an organisational network ('Intranet'). security domain is an organisational network ('Intranet').
2.1 Domain Signature 2.1 Domain Signature
A Domain signature is an S/MIME signature generated on behalf of a set A Domain signature is an S/MIME signature generated on behalf of a set
of users in a domain. A Domain signature can be used to authenticate of users in a domain. A Domain signature can be used to authenticate
information sent between domains, for example, when two 'Intranets' are information sent between domains or between a certain domain and one of
connected using the Internet. It can be used when two domains employ its individuals, for example, when two 'Intranets' are connected using
incompatible signature schemes internally or when there are no the Internet, or when an Intranet is connected to a remote user over the
certification links between their PKIs. In both cases messages from the Internet. It can be used when two domains employ incompatible signature
originator's domain are signed over the original message and signature schemes internally or when there are no certification links between their
(if present) using an algorithm, key, and certificate which can be PKIs. In both cases messages from the originator's domain are signed over
processed by the recipient(s). A domain signature is sometimes referred the original message and signature(if present)using an algorithm, key,
to as an "organisational signature". and certificate which can be processed by the recipient(s). A domain
signature is sometimes referred to as an "organisational signature".
2.2 Review Signature 2.2 Review Signature
A third party may review messages before they are forwarded to the final A third party may review messages before they are forwarded to the final
recipient(s) who may be in the same or a different security domain. recipient(s) who may be in the same or a different security domain.
Organisational policy and good security practice often require that Organisational policy and good security practice often require that
messages be reviewed before they are released to external recipients. messages be reviewed before they are released to external recipients.
Having reviewed a message, an S/MIME signature is added to it - a review Having reviewed a message, an S/MIME signature is added to it - a review
signature. An agent MAY check the review signature at the domain signature. An agent MAY check the review signature at the domain
boundary, to ensure that only reviewed messages are released. boundary, to ensure that only reviewed messages are released.
skipping to change at line 185 skipping to change at line 195
S/MIME signature is used for this purpose - an additional attributes S/MIME signature is used for this purpose - an additional attributes
signature. An example of an additional attribute is the 'Equivalent signature. An example of an additional attribute is the 'Equivalent
Label' attribute defined in ESS [3]. Label' attribute defined in ESS [3].
2.4 Domain Encryption and Decryption 2.4 Domain Encryption and Decryption
Domain encryption is S/MIME encryption performed on behalf of a Domain encryption is S/MIME encryption performed on behalf of a
collection of users in a domain. Domain encryption can be used to collection of users in a domain. Domain encryption can be used to
protect information between domains, for example, when two 'Intranets' protect information between domains, for example, when two 'Intranets'
are connected using the Internet. It can also be used when end users do are connected using the Internet. It can also be used when end users do
not have encryption capabilities at the desktop, or when two domains not have PKI/encryption capabilities at the desktop, or when two
employ incompatible encryption schemes internally. In the latter case domains employ incompatible encryption schemes internally. In the latter
messages from the originator's domain are re-encrypted using an case messages from the originator's domain are (re-)encrypted using an
algorithm, key, and certificate which can be decrypted by the algorithm, key, and certificate which can be decrypted by the
recipient(s) or an entity in their domain. recipient(s) or an entity in their domain. This scheme also applies to
protecting information between a single domain and one of its members
when both are connected using an untrusted network, e.g the Internet.
3. Mapping of the Signature Services to the S/MIME Protocol 3. Mapping of the Signature Services to the S/MIME Protocol
This section describes the S/MIME protocol elements that are used to This section describes the S/MIME protocol elements that are used to
provide the security services described above. ESS [3] introduces the provide the security services described above. ESS [3] introduces the
concept of triple-wrapped messages that are first signed, then concept of triple-wrapped messages that are first signed, then
encrypted, then signed again. This document also uses this concept of encrypted, then signed again. This document also uses this concept of
triple-wrapping. In addition, this document also uses the concept of triple-wrapping. In addition, this document also uses the concept of
'signature encapsulation'. 'Signature encapsulation' denotes a signed 'signature encapsulation'. 'Signature encapsulation' denotes a signed
or unsigned message that is wrapped in a signature, this signature or unsigned message that is wrapped in a signature, this signature
skipping to change at line 218 skipping to change at line 230
a domain signature. a domain signature.
A DOMSEC signature MAY encapsulate a message in one of the following A DOMSEC signature MAY encapsulate a message in one of the following
ways: ways:
1) An unsigned message has a null signature added to it (i.e. the 1) An unsigned message has a null signature added to it (i.e. the
message is wrapped in a signedData that has a signerInfos which message is wrapped in a signedData that has a signerInfos which
contains no elements). This is to enable backward compatibility with contains no elements). This is to enable backward compatibility with
S/MIME software that does not have a DOMSEC capability. Since the S/MIME software that does not have a DOMSEC capability. Since the
signerInfos will contain no signers the eContentType, within the signerInfos will contain no signers the eContentType, within the
EncapsulatedContentInfo will be id-data as described in CMS [5]. EncapsulatedContentInfo, will be id-data as described in CMS [5].
However, the eContent field will contain the unsigned message instead However, the eContent field will contain the unsigned message instead
of being left empty as suggested in section 5.2 in CMS [5]. This is so of being left empty as suggested in section 5.2 in CMS [5]. This is so
that when the DOMSEC signature is added, as defined in method 2) that when the DOMSEC signature is added, as defined in method 2)
below, the signature will cover the unsigned message The originator's below, the signature will cover the unsigned message. The originator's
information is included as part of a header field in the encapsulated information is included as part of a header field in the encapsulated
message. message.
2) Signature Encapsulation is used to wrap the original signed message 2) Signature Encapsulation is used to wrap the original signed message
with a 'domain signature'. with a 'domain signature'.
3.1 Naming conventions and Signature Types 3.1 Naming Conventions and Signature Types
An entity receiving an S/MIME signed message would normally expect the An entity receiving an S/MIME signed message would normally expect the
signature to be that of the originator of the message. However, the signature to be that of the originator of the message. However, the
message security services defined in this document require the recipient message security services defined in this document require the recipient
to be able accept messages signed by other entities and the originator. to be able to accept messages signed by other entities and/or the
When other entities sign the message the name in the certificate will originator. When other entities sign the message the name in the
not match the message senders name. An S/MIME compliant implementation certificate will not match the message sender's name. An S/MIME
would normally flag a warning if there were a mismatch between the name compliant implementation would normally flag a warning if there were a
in the certificate and the message sender's name. (This check prevents a mismatch between the name in the certificate and the message sender's
number of types of masquerade attack.) name. (This check prevents a number of types of masquerade attack.)
In the case of domain security services, this warning condition SHOULD In the case of domain security services, this warning condition SHOULD
be suppressed under certain circumstances. These circumstances are be suppressed under certain circumstances. These circumstances are
defined by a naming convention that specifies the form that the signers defined by a naming convention that specifies the form that the signers
name SHOULD adher to. Adherence to this naming convention avoids the name SHOULD adhere to. Adherence to this naming convention avoids the
problems of uncontrolled naming and the possible masquerade attacks that problems of uncontrolled naming and the possible masquerade attacks that
this would produce. this would produce.
As an assistance to implementation, a signed attribute is defined to be As an assistance to implementation, a signed attribute is defined to be
included in the S/MIME signature - the 'signature type' attribute. On included in the S/MIME signature - the 'signature type' attribute. On
receiving a message containing this attribute, the naming convention receiving a message containing this attribute, the naming convention
checks are invoked. checks are invoked.
Implementations conforming to this standard MUST support the naming Implementations conforming to this standard MUST support the naming
convention for signature generation and verification. Implementations convention for signature generation and verification. Implementations
conforming to this standard MUST recognise the signature type attribute conforming to this standard MUST recognise the signature type attribute
for signature verification. Implementations conforming to this standard for signature verification. Implementations conforming to this standard
MUST support the signature type attribute for signature generation. MUST support the signature type attribute for signature generation.
3.1.1 Naming conventions 3.1.1 Naming Conventions
The following naming conventions are specified for agents generating The following naming conventions are specified for agents generating
signatures specified in this document: signatures specified in this document:
* For a domain signature, an agent generating this signature MUST be * For a domain signature, an agent generating this signature MUST be
named 'domain-signing-authority' named 'domain-signing-authority'
* For a review signature, an agent generating this signature MUST be * For a review signature, an agent generating this signature MUST be
named 'review-authority'. named 'review-authority'.
* For an additional attributes signature, an agent generating this * For an additional attributes signature, an agent generating this
signature MUST be named 'attribute-authority'. signature MUST be named 'attribute-authority'.
This name shall appear in the 'common name (CN)' component of the This name shall appear in the 'common name (CN)' component of the
subject field in the X.509 certificate. Additionally, if the subject field in the X.509 certificate. Additionally, if the
certificate contains an SMTP e-mail address, this name shall appear in certificate contains an RFC 822 address, this name shall appear in
the end entity component of the address - on the left-hand side of the the end entity component of the address - on the left-hand side of the
'@' symbol. '@' symbol.
In the case of a domain signature, an additional naming rule is In the case of a domain signature, an additional naming rule is
defined: the 'name mapping rule'. The name mapping rule states that defined: the 'name mapping rule'. The name mapping rule states that
for a domain signing authority, the domain component of its name MUST be for a domain signing authority, the domain component of its name MUST be
the same as, or an ascendant of, the domain name of the message the same as, or an ascendant of, the domain name of the message
originator(s) that it is representing. The domain component is defined originator(s) that it is representing. The domain component is defined
as follows: as follows:
* In the case of an X.500 distinguished subject name of an X.509 * In the case of an X.500 distinguished subject name of an X.509
certificate, the domain component is the country, organisation, certificate, the domain component is the country, organisation,
organisational unit, state, and locality components of the organisational unit, state, and locality components of the
distinguished name. distinguished name.
* If the certificate contains an SMTP e-mail address, the domain * If the certificate contains an RFC 822 address, the domain
component is defined to be the SMTP address component on the right- component is defined to be the RFC 822 address component on the right-
hand side of the '@' symbol. hand side of the '@' symbol.
For example, a domain signing authority acting on behalf of John Doe of For example, a domain signing authority acting on behalf of John Doe of
the Acme corporation, whose distinguished name is 'cn=John Doe, the Acme corporation, whose distinguished name is 'cn=John Doe,
ou=marketing,o=acme,c=us' and whose e-mail address is ou=marketing,o=acme,c=us' and whose e-mail address is
John.Doe@marketing.acme.com, could have a certificate containing a John.Doe@marketing.acme.com, could have a certificate containing a
distinguished name of 'cn=domain-signing-authority, o=acme,c=us' and an distinguished name of 'cn=domain-signing-authority,o=acme,c=us' and a
e-mail address of 'domain-signing-authority@acme.com'. RFC 822 address of 'domain-signing-authority@acme.com'.
When the X.500 distinguished subject name has consecutive organisational
units and/or localities it is important to understand the ordering of
these values in order to determine if the domain component of the domain
signature is an ascendant. In this case, when parsing the distinguished
subject name from the root (i.e. country, locality or organisation) the
parsed organisational unit or locality is deemed to be the ascendant of
consecutive (unparsed) organisational units or localities.
For example, a domain signing authority acting on behalf of John Doe of
the Acme corporation, whose distinguished name is 'cn=John Doe,
ou=marketing,ou=defence,o=acme,c=us' and whose e-mail address is
John.Doe@marketing.defence.acme.com, could have a certificate containing
a distinguished name of 'cn=domain-signing-authority,ou=defence,o=acme,
c=us' and a RFC 822 address of
'domain-signing-authority@defence.acme.com'.
Any message received where the domain component of the domain signing Any message received where the domain component of the domain signing
agents name does not match, or is not an ascendant of, the originator's agents name does not match, or is not an ascendant of, the originator's
domain name MUST be rejected. domain name MUST be rejected.
This naming rule prevents agents from one organisation masquerading as This naming rule prevents agents from one organisation masquerading as
domain signing authorities on behalf of another. For the other types of domain signing authorities on behalf of another. For the other types of
signature defined in this document, no such named mapping rule is signature defined in this document, no such named mapping rule is
defined. defined.
Implementations conforming to this standard MUST support this name Implementations conforming to this standard MUST support this name
mapping convention as a minimum. Implementations MAY choose to mapping convention as a minimum. Implementations MAY choose to
supplement this convention with other locally defined conventions. supplement this convention with other locally defined conventions.
However, these MUST be agreed between sender and recipient domains prior However, these MUST be agreed between sender and recipient domains prior
to secure exchange of messages. to secure exchange of messages.
On verifying the signature, a receiving agent MUST ensure that the On verifying the signature, a receiving agent MUST ensure that the
naming convention has been adhered to. Any message that violates the naming convention has been adhered to. Any message that violates the
convention shall be rejected as invalid. convention shall be rejected as invalid.
3.1.2 Signature type attribute 3.1.2 Signature Type Attribute
An S/MIME authenticated attribute is used to indicate the type of An S/MIME signed attribute is used to indicate the type of signature.
signature. This should be used in conjunction with the naming This should be used in conjunction with the naming conventions specified
conventions specified in the previous section. When an S/MIME signed in the previous section. When an S/MIME signed message containing the
message containing the signature type attribute is received it triggers signature type attribute is received it triggers the software to verify
the software to verify that the correct naming convention has been used. that the correct naming convention has been used.
The ASN.1 [4] notation of this attribute is: - The ASN.1 [4] notation of this attribute is: -
SignatureType ::= SEQUENCE OF OBJECT IDENTIFIER SignatureType ::= SEQUENCE OF OBJECT IDENTIFIER
id-signatureType OBJECT IDENTIFIER ::= { iso (1) member-body (2) id-aa-signatureType OBJECT IDENTIFIER ::= { iso (1) member-body (2)
us (840) rsadsi (113549) <TBD> } us (840) rsadsi (113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 28}
If present, the SignatureType attribute MUST be an authenticated If present, the SignatureType attribute MUST be a signed attribute, as
attribute, as defined in [5]. If the SignatureType attribute is absent defined in [5]. If the SignatureType attribute is absent the recipient
the recipient SHOULD assume that the signature is that of the message SHOULD assume that the signature is that of the message originator.
originator.
Each of the signature types defined here are generated and processed Each of the signature types defined here are generated and processed
exactly as described in [5]. They are distinguished by the presence of exactly as described in [5]. They are distinguished by the presence of
the following values in the SignatureType authenticated attribute: the following values in the SignatureType signed attribute:
id-sigtype-domain-sig OBJECT IDENTIFIER ::= { id-signatureType 2 } for a id-aa-sigtype-domain-sig OBJECT IDENTIFIER ::= { id-aa-signatureType 2 }
domain signature. for a domain signature.
id-sigtype-add-attrib-sig OBJECT IDENTIFIER ::= { id-signatureType 3} id-aa-sigtype-add-attrib-sig OBJECT IDENTIFIER ::= { id-aa-signatureType
for an additional attributes signature. 3} for an additional attributes signature.
id-sigtype-review OBJECT IDENTIFIER ::= { id-signatureType 4} for a id-aa-sigtype-review OBJECT IDENTIFIER ::= { id-aa-signatureType 4} for a
review signature. review signature.
For completeness, an attribute type is also specified for an originator For completeness, an attribute type is also specified for an originator
signature. However, this signature type is optional. It is defined as signature. However, this signature type is optional. It is defined as
follows: follows:
id-sigtype-originator-sig OBJECT IDENTIFIER ::= { id-signatureType 1} id-aa-sigtype-originator-sig OBJECT IDENTIFIER ::= { id-aa-signatureType 1}
for an originator's signature. for an originator's signature.
The originator signature MUST NOT encapsulate other signatures. The The originator signature MUST NOT encapsulate other signatures. The
other signature types specified in this document MUST encapsulate other other signature types specified in this document MUST encapsulate other
signatures. signatures. Note the domain signature could be encapsulating a null
signature as defined in section 3.
A SignerInfo MUST NOT include multiple instances of SignatureType. An A SignerInfo MUST NOT include multiple instances of SignatureType. A
authenticated attribute representing a SignatureType MAY include signed attribute representing a SignatureType MAY include multiple
multiple instances of different SignatureType values as an instances of different SignatureType values as an AttributeValue of
AttributeValue of attrValues [5], as long as the SignatureType attrValues [5], as long as the SignatureType 'additional attributes' is
'additional attributes' is not present. not present.
The following sections describe the conditions under which each of these The following sections describe the conditions under which each of these
types of signature may be generated, and how they are processed. types of signature may be generated, and how they are processed.
3.2 Domain Signature Generation and Verification 3.2 Domain Signature Generation and Verification
A 'domain signature' is a proxy signature generated on a user's behalf A 'domain signature' is a proxy signature generated on a user's behalf
in the user's domain. The signature MUST adhere to the naming in the user's domain. The signature MUST adhere to the naming
conventions in 3.1.1, including the name mapping convention. A 'domain conventions in 3.1.1, including the name mapping convention. A 'domain
signature' on a message authenticates the fact that the message has signature' on a message authenticates the fact that the message has
skipping to change at line 430 skipping to change at line 458
If neither of these cases is true the only assumption that can be made If neither of these cases is true the only assumption that can be made
is the domain the message originated from. is the domain the message originated from.
A domain signer can be assumed to have verified any signatures that it A domain signer can be assumed to have verified any signatures that it
encapsulates. Therefore, it is not necessary to verify these signatures encapsulates. Therefore, it is not necessary to verify these signatures
before treating the message as authentic. However, this standard does before treating the message as authentic. However, this standard does
not preclude a recipient from attempting to verify any other signatures not preclude a recipient from attempting to verify any other signatures
that are present. that are present.
The 'domain signature' is indicated by the presence of the value The 'domain signature' is indicated by the presence of the value
Id-at-sigtype-domain-sig in a 'signature type' authenticated attribute. id-aa-sigtype-domain-sig in a 'signature type' signed attribute.
There MAY be multiple 'domain signature' signatures in an S/MIME There MAY be multiple 'domain signature' signatures in an S/MIME
encoding. encoding.
3.3 Additional Attributes Signature generation and verification 3.3 Additional Attributes Signature Generation and Verification
The 'additional attributes' signature type indicates that the The 'additional attributes' signature type indicates that the
SignerInfo contains additional attributes that are associated with the SignerInfo contains additional attributes that are associated with the
message. message.
All attributes in the applicable SignerInfo MUST be treated as All attributes in the applicable SignerInfo MUST be treated as
additional attributes. Successful verification of an 'additional additional attributes. Successful verification of an 'additional
attributes' signature means only that the attributes are authentically attributes' signature means only that the attributes are authentically
bound to the message. A recipient MUST NOT assume that its successful bound to the message. A recipient MUST NOT assume that its successful
verification also authenticates the message originator. verification also authenticates the message originator.
skipping to change at line 467 skipping to change at line 495
1) Equivalent Label: label values in this attribute are to be treated as 1) Equivalent Label: label values in this attribute are to be treated as
equivalent to the security label contained in an encapsulated equivalent to the security label contained in an encapsulated
SignerInfo, if present. SignerInfo, if present.
2) Security Label: the label value indicates the aggregate sensitivity 2) Security Label: the label value indicates the aggregate sensitivity
of the inner message content plus any encapsulated signedData and of the inner message content plus any encapsulated signedData and
envelopedData containers. The label on the original data is indicated envelopedData containers. The label on the original data is indicated
by the value in the originator's signature, if present. by the value in the originator's signature, if present.
An 'additional attributes' signature is indicated by the presence of the An 'additional attributes' signature is indicated by the presence of the
value Id-at-sigtype-add-attrib-sig in a 'signature type' authenticated value id-aa-sigtype-add-attrib-sig in a 'signature type' signed
attribute. No other Object Identifiers MAY be included in the sequence attribute. No other Object Identifiers MAY be included in the sequence
of OIDs if this value is present. of OIDs if this value is present.
There MAY be multiple 'additional attributes' signatures in an S/MIME There MAY be multiple 'additional attributes' signatures in an S/MIME
encoding. encoding.
3.4 Review Signature generation and verification 3.4 Review Signature Generation and Verification
The review signature indicates that the signer has reviewed the message. The review signature indicates that the signer has reviewed the message.
Successful verification of a review signature means only that the signer Successful verification of a review signature means only that the signer
has approved the message for onward transmission to the recipient(s). has approved the message for onward transmission to the recipient(s).
When the recipient is in another domain, a device on a domain boundary When the recipient is in another domain, a device on a domain boundary
such as a Mail Guard or firewall may be configured to check review such as a Mail Guard or firewall may be configured to check review
signatures. A recipient MUST NOT assume that its successful verification signatures. A recipient MUST NOT assume that its successful verification
also authenticates the message originator. also authenticates the message originator.
An entity generating a signed review signature MUST do so using a An entity generating a signed review signature MUST do so using a
certificate containing a subject name that follows the naming convention certificate containing a subject name that follows the naming convention
specified in 3.1.1. On reception, a check MUST be made to ensure that specified in 3.1.1. On reception, a check MUST be made to ensure that
the naming convention has been used. the naming convention has been used.
A review signature is indicated by the presence of the value A review signature is indicated by the presence of the value
Id-at-sigtype-review-sig in a 'signature type' authenticated attribute. id-aa-sigtype-review-sig in a 'signature type' signed attribute.
There MAY be multiple review signatures in an S/MIME encoding. There MAY be multiple review signatures in an S/MIME encoding.
3.5 Originator Signature 3.5 Originator Signature
The 'originator signature' is used to indicate that the signer is the The 'originator signature' is used to indicate that the signer is the
originator of the message and its contents. It is included in this originator of the message and its contents. It is included in this
document for completeness only. An originator signature is indicated document for completeness only. An originator signature is indicated
either by the absence of the signature type attribute, or by the either by the absence of the signature type attribute, or by the
presence of the value id-sigtype-originator-sig in a 'signature type' presence of the value id-aa-sigtype-originator-sig in a 'signature type'
authenticated attribute. There MUST be only one 'originator signature' signed attribute. There MUST be only one 'originator signature'
signature present in an S/MIME encoding and it MUST be the inner most signature present in an S/MIME encoding and it MUST be the inner most
signature. signature.
4. Encryption and Decryption 4. Encryption and Decryption
Message encryption may be performed by a third party on behalf of a set Message encryption may be performed by a third party on behalf of a set
of originators in a domain. This is referred to as domain encryption. of originators in a domain. This is referred to as domain encryption.
Message decryption may be performed by a third party on behalf of a set Message decryption may be performed by a third party on behalf of a set
of recipients in a domain. This is referred to as domain decryption. of recipients in a domain. This is referred to as domain decryption.
The third party that performs these processes is referred to in this The third party that performs these processes is referred to in this
skipping to change at line 556 skipping to change at line 584
decryption is for greater flexibility in the management of keys, as decryption is for greater flexibility in the management of keys, as
described in the following subsections. As with signatures, a naming described in the following subsections. As with signatures, a naming
convention and name mapping convention are used to locate the correct convention and name mapping convention are used to locate the correct
key. key.
The mechanisms described below are applicable both to key agreement and The mechanisms described below are applicable both to key agreement and
key transport systems, as documented in CMS [5]. The phrase 'encryption key transport systems, as documented in CMS [5]. The phrase 'encryption
key' is used as a collective term to cover the key management keys used key' is used as a collective term to cover the key management keys used
by both techniques. by both techniques.
The mechanisms below are also applicable to individual roving users who
wish to encrypt messages that are sent back to base.
4.1 Domain Confidentiality Naming Conventions 4.1 Domain Confidentiality Naming Conventions
A DCA MUST be named 'domain-confidentiality-authority'. This name MUST A DCA MUST be named 'domain-confidentiality-authority'. This name MUST
appear in the 'common name(CN)' component of the subject field in the appear in the 'common name(CN)' component of the subject field in the
X.509 certificate. Additionally, if the certificate contains an SMTP X.509 certificate. Additionally, if the certificate contains an RFC 822
e-mail address, this name MUST appear in the end entity component of address, this name MUST appear in the end entity component of the
the address - on the left-hand side of the '@' symbol. address - on the left-hand side of the '@' symbol.
Along with this naming convention, an additional naming rule is defined: Along with this naming convention, an additional naming rule is defined:
the 'name mapping rule'. The name mapping rule states that for a DCA, the 'name mapping rule'. The name mapping rule states that for a DCA,
the domain component of its name MUST be the same as, or an ascendant the domain component of its name MUST be the same as, or an ascendant
of, the domain name of the set of entities that it represents. The of, the domain name of the set of entities that it represents. The
domain component is defined as follows: domain component is defined as follows:
* In the case of an X.500 distinguished name of an X.509 certificate, * In the case of an X.500 distinguished name of an X.509 certificate,
the domain component is the country, organisation, organisational the domain component is the country, organisation, organisational
unit, state, and locality components of the distinguished name. unit, state, and locality components of the distinguished name.
* If the certificate contains an SMTP e-mail address, the domain * If the certificate contains an RFC 822 address, the domain component
component is defined to be the SMTP address component on the right- is defined to be the RFC 822 address component on the right-hand side
hand side of the '@' symbol. of the '@' symbol.
For example, a DCA acting on behalf of John Doe of the Acme For example, a DCA acting on behalf of John Doe of the Acme
corporation, whose distinguished name is 'cn=John Doe, ou=marketing, corporation, whose distinguished name is 'cn=John Doe, ou=marketing,
o=acme,c=us' and whose e-mail address is John.Doe@marketing.acme.com, o=acme,c=us' and whose e-mail address is John.Doe@marketing.acme.com,
could have a certificate containing a distinguished name of could have a certificate containing a distinguished name of
'cn=domain-confidentiality-authority, o=acme,c=us' and an e-mail 'cn=domain-confidentiality-authority, o=acme,c=us' and an e-mail
address of 'domain-confidentiality-authority@acme.com'. The key address of 'domain-confidentiality-authority@acme.com'. The key
associated with this certificate would be used for encrypting messages associated with this certificate would be used for encrypting messages
for John Doe. for John Doe.
skipping to change at line 600 skipping to change at line 631
This naming rule prevents messages being encrypted for the wrong domain This naming rule prevents messages being encrypted for the wrong domain
decryption agent. decryption agent.
Implementations conforming to this standard MUST support this name Implementations conforming to this standard MUST support this name
mapping convention as a minimum. Implementations may choose to mapping convention as a minimum. Implementations may choose to
supplement this convention with other locally defined conventions. supplement this convention with other locally defined conventions.
However, these MUST be agreed between sender and recipient domains However, these MUST be agreed between sender and recipient domains
prior to sending any messages. prior to sending any messages.
4.2 Key Management for Domain Encryption 4.2 Key Management for DCA Encryption
Domain encryption may be performed for decryption by the end recipient
and/or by a DCA. End recipient decryption is described in CMS [5]. DCA
decryption is described in the next section.
Domain encryption uses a domain-wide encryption key from the sender's At the sender's domain, DCA encryption is achieved using the recipient
domain. This Key is owned by the DCA for the sender's domain. DCA's certificate or the end recipient's certificate. For this, the
Information about this key is conveyed to the recipient in the encrypting process must be able to correctly locate the certificate to
recipientInfo field as specified in CMS [5]. A domain encryption agent the corresponding DCA in the recipient's domain or the one corresponding
MUST be named according to the naming convention specified in section to the end recipient. Having located the correct certificate, the
4.1. This is so that the same key can be used on reply to a domain- encryption process is then performed and additional information required
for decryption is conveyed to the recipient in the recipientInfo field
as specified in CMS [5]. A DCA encryption agent MUST be named according
to the naming convention specified in section 4.1. This is so that the
corresponding certificate can be used on eventual reply to a DCA
encrypted message. encrypted message.
4.3 Key Management for Domain Decryption DCA encryption may be performed for decryption by the end recipient
and/or by a DCA. End recipient decryption is described in CMS [5]. DCA
decryption is described in section 4.3.
Domain decryption can be performed on messages encrypted by the 4.3 Key Management for DCA Decryption
originator and/or by a DCA in the originator's domain. In the first
case, the encryption process is described in CMS [5]; in the second
case, the encryption process is described in 4.2.
Domain decryption uses a domain-wide decryption key from the recipient's DCA decryption uses a private-key from the recipient's domain and the
domain. This key is owned by the DCA for the recipient domain. In order necessary information conveyed in the recipientInfo field. The
to locate the correct key, the certificate corresponding to the DCA must private-key is owned by the DCA for the recipient domain. This is
be located. It is vital that the naming conventions specified in 4.1 are achieved using the naming conventions specified in 4.1. It is vital that
adhered to, in order to maintain confidentiality. these conventions are adhered to, in order to maintain confidentiality.
It should be noted that domain decryption can be performed on messages
encrypted by the originator and/or by a DCA in the originator's domain.
In the first case, the encryption process is described in CMS [5]; in
the second case, the encryption process is described in 4.2.
No specific method for locating this certificate is mandated in this No specific method for locating this certificate is mandated in this
document. An implementation may choose to access a local certificate document. An implementation may choose to access a local certificate
store to locate the correct certificate. Alternatively, a directory may store to locate the correct certificate. Alternatively, a directory may
be used in one of the following ways: be used in one of the following ways:
1. The directory may store the DCA certificate in the recipient's 1. The directory may store the DCA certificate in the recipient's
directory entry. When the user certificate attribute is requested, directory entry. When the user certificate attribute is requested,
this certificate is returned. this certificate is returned.
skipping to change at line 662 skipping to change at line 697
Similarly, compromise of the content-encryption key may result in Similarly, compromise of the content-encryption key may result in
disclosure of the encrypted content. disclosure of the encrypted content.
Compromise of key material is regarded as an even more serious issue for Compromise of key material is regarded as an even more serious issue for
domain security services than for an S/MIME client. This is because domain security services than for an S/MIME client. This is because
compromise of the private key may in turn compromise the security of a compromise of the private key may in turn compromise the security of a
whole domain. Therefore, great care should be used when considering its whole domain. Therefore, great care should be used when considering its
protection. protection.
Domain encryption alone is not secure and should be used in conjuction
with a domain signature to avoid a masquerade attack, where an attacker
that has obtain a DCA cert can fake a message to that domain pretending
to be another domain.
6. References 6. References
[1] Ramsdell, B., "S/MIME Version 3 Message Specification", RFC2633, [1] Ramsdell, B., "S/MIME Version 3 Message Specification", RFC2633,
June 1999. June 1999.
[2] Bradner, S., "Key words for use in RFCs to Indicate [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Requirement Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[3] Hoffman, P., "Enhanced Security Services for S/MIME", RFC 2634, [3] Hoffman, P., "Enhanced Security Services for S/MIME", RFC 2634,
June 1999. June 1999.
[4] International Telecommunications Union, Recommendation X.208, "Open [4] International Telecommunications Union, Recommendation X.208, "Open
systems interconnection: specification of Abstract Syntax Notation systems interconnection: specification of Abstract Syntax Notation
(ASN.1)", CCITT Blue Book, 1989. (ASN.1)", CCITT Blue Book, 1989.
[5] Housley, R., "Cryptographic Message Syntax", RFC 2630, June 1999. [5] Housley, R., "Cryptographic Message Syntax", RFC 2630, June 1999.
skipping to change at line 730 skipping to change at line 770
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE." FITNESS FOR A PARTICULAR PURPOSE."
This draft expires 8th September 2000 This draft expires 26th November 2000
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/