draft-ietf-smime-compression-00.txt   draft-ietf-smime-compression-01.txt 
Internet Draft Editor: Peter Gutmann Internet Draft Editor: Peter Gutmann
draft-ietf-smime-compression-00.txt University of Auckland draft-ietf-smime-compression-01.txt University of Auckland
October 18, 1999 August 29, 2000
Expires April 2000 Expires February 2001
Compressed Data Content Type for S/MIME Compressed Data Content Type for 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. provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Task Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other Force (IETF), its areas, and its working groups. Note that other
skipping to change at line 36 skipping to change at line 36
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Abstract Abstract
The Cryptographic Message Syntax data format doesn't currently contain The Cryptographic Message Syntax data format doesn't currently contain
any provisions for compressing data before processing it. Compressing any provisions for compressing data before processing it. Compressing
data before transmission provides a number of advantages including the data before transmission provides a number of advantages including the
elimination of data redundancy which could help an attacker, speeding elimination of data redundancy which could help an attacker, speeding
up processing by reducing the amount of data to be processed by later up processing by reducing the amount of data to be processed by later
steps such as signing or encryption, and reducing overall message size. steps such as signing or encryption, and reducing overall message size.
This document defines a format for using compressed data as a CMS Although there have been proposals for adding compression at other
content type. levels (for example at the MIME or SSL level) these don't address the
problem of compression of CMS content unless the compression is
This draft is being discussed on the "ietf-smime" mailing list. To supplied by an external means (for example by intermixing MIME and
join the list, send a message to <ietf-smime-request@imc.org> with the CMS). This document defines a format for using compressed data as a
single word "subscribe" in the body of the message. Also, there is a CMS content type.
Web site for the mailing list at <http://www.imc.org/ietf-smime>.
1. Introduction 1. Introduction
This document describes a compressed data content encryption type for This document describes a compressed data content encryption type for
S/MIME. This is implemented as a new ContentInfo type and is an S/MIME. This is implemented as a new ContentInfo type and is an
extension to the types currently defined in CMS [CMS]. Future extension to the types currently defined in CMS [RFC 2630]. Future
implementations of CMS SHOULD include this extension. implementations of CMS SHOULD include this extension.
The format of the messages are described in ASN.1:1994 [ASN1]. The format of the messages are described in ASN.1:1994 [ASN1].
The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT",
"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in [RFC2119]. interpreted as described in [RFC2119].
1.1 Compressed Data Content Type 1.1 Compressed Data Content Type
The compressed-data content type consists of content of any type The compressed-data content type consists of content of any type
compressed using a specified algorithm. The following object compressed using a specified algorithm. The following object
identifier identifies the compressed-data content type: identifier identifies the compressed-data content type:
id-ct-compressedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) id-ct-compressedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 3 } us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 9 }
The compressed-data content type shall have ASN.1 type CompressedData: The compressed-data content type shall have ASN.1 type CompressedData:
CompressedData ::= SEQUENCE { CompressedData ::= SEQUENCE {
version CMSVersion, version CMSVersion,
compressionAlgorithm CompressionAlgorithmIdentifier, compressionAlgorithm CompressionAlgorithmIdentifier,
encapContentInfo EncapsulatedContentInfo encapContentInfo EncapsulatedContentInfo
} }
The fields of type CompressedData have the following meanings: The fields of type CompressedData have the following meanings:
skipping to change at line 87 skipping to change at line 86
compressionAlgorithm is a compression algorithm identifier, as compressionAlgorithm is a compression algorithm identifier, as
defined in section 2. defined in section 2.
encapContentInfo is the content which is compressed. encapContentInfo is the content which is compressed.
Implementations SHOULD use the SMIMECapabilities attribute to indicate Implementations SHOULD use the SMIMECapabilities attribute to indicate
their ability to process compressed content types. A compression their ability to process compressed content types. A compression
SMIMECapability consists of the AlgorithmIdentifier for the supported SMIMECapability consists of the AlgorithmIdentifier for the supported
compression algorithm, in the case of the algorithm specified in this compression algorithm, in the case of the algorithm specified in this
document this is is-alg-zlib with parameters NULL. Alternatively, the document this is id-alg-zlibCompression with parameters NULL.
use of compression may be handled by prior arrangement (for example as Alternatively, the use of compression may be handled by prior
part of an interoperability profile). arrangement (for example as part of an interoperability profile).
2. Compression Types 2. Compression Types
CMS implementations should include ZLIB [RFC 1950] [RFC 1951], which is CMS implementations should include ZLIB [RFC 1950] [RFC 1951], which is
free of any intellectual property restrictions and has a free of any intellectual property restrictions and has a freely-
freely-available, portable and efficient reference implementation. The available, portable and efficient reference implementation. The
following object identifier identifies ZLIB: following object identifier identifies ZLIB:
id-alg-zlib OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) id-alg-zlibCompress OBJECT IDENTIFIER ::= { iso(1) member-body(2)
rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 8 } us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 8 }
The parameters for this algorithm are NULL. The parameters for this algorithm are NULL.
3. Security Considerations 3. Security Considerations
This RFC is not concerned with security, except for the fact that This RFC is not concerned with security, except for the fact that
compressing data before encryption can enhance the security provided by compressing data before encryption can enhance the security provided by
other processing steps by reducing the quantity of known plaintext other processing steps by reducing the quantity of known plaintext
available to an attacker. available to an attacker.
skipping to change at line 123 skipping to change at line 122
University of Auckland University of Auckland
Private Bag 92019 Private Bag 92019
Auckland, New Zealand Auckland, New Zealand
pgut001@cs.auckland.ac.nz pgut001@cs.auckland.ac.nz
References References
ASN1 Recommendation X.680: Specification of Abstract Syntax Notation ASN1 Recommendation X.680: Specification of Abstract Syntax Notation
One (ASN.1), 1994. One (ASN.1), 1994.
CMS Cryptographic Message Syntax, draft-ietf-smime-cms-11.txt, Russ
Housley, April 1999.
RFC2119 Key Words for Use in RFC's to Indicate Requirement Levels, RFC2119 Key Words for Use in RFC's to Indicate Requirement Levels,
S.Bradner, March 1997. S.Bradner, March 1997.
RFC1950 ZLIB Compressed Data Format Specification version 3.3, RFC1950 ZLIB Compressed Data Format Specification version 3.3,
P.Deutsch and J-L Gailly, May 1996. P.Deutsch and J-L Gailly, May 1996.
RFC1951 DEFLATE Compressed Data Format Specification version 1.3, RFC1951 DEFLATE Compressed Data Format Specification version 1.3,
P.Deutsch, May 1996. P.Deutsch, May 1996.
RFC 2630 Cryptographic Message Syntax, R.Housley, June 1999.
Appendix A: ASN.1 Module Appendix A: ASN.1 Module
PasswordRecipientInfo CompressedDataContent
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
smime(16) modules(0) compression(n+1) } smime(16) modules(0) compress(11) }
DEFINITIONS IMPLICIT TAGS ::= DEFINITIONS IMPLICIT TAGS ::=
BEGIN BEGIN
IMPORTS
CMSVersion, EncapsulatedContentInfo FROM CryptographicMessageSyntax
{ iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) modules(0) cms(1) },
AlgorithmIdentifier FROM AuthenticationFramework
{ joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 3 };
CompressedData ::= SEQUENCE { CompressedData ::= SEQUENCE {
version CMSVersion, -- Always set to 0 version CMSVersion, -- Always set to 0
compressionAlgorithm CompressionAlgorithmIdentifier, compressionAlgorithm CompressionAlgorithmIdentifier,
encapContentInfo EncapsulatedContentInfo encapContentInfo EncapsulatedContentInfo
} }
CompressionAlgorithmIdentifer ALGORITHM-IDENTIFIER ::= { CompressionAlgorithmIdentifer ::= AlgorithmIdentifier
{ SYNTAX NULL IDENTIFIED BY id-alg-ZLIB },
...
}
END END
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society 1999. All Rights Reserved. Copyright (C) The Internet Society 1999. All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and assist in its implementation may be prepared, copied, published and
 End of changes. 

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