RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04
"Blake Ramsdell" <blake@brutesquadlabs.com> Sun, 26 October 2003 10:12 UTC
Received: from above.proper.com (above.proper.com [208.184.76.39]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id FAA13551 for <smime-archive@lists.ietf.org>; Sun, 26 Oct 2003 05:12:29 -0500 (EST)
Received: from above.proper.com (localhost [127.0.0.1]) by above.proper.com (8.12.10/8.12.8) with ESMTP id h9Q9e4I7003421 for <ietf-smime-bks@above.proper.com>; Sun, 26 Oct 2003 01:40:04 -0800 (PST) (envelope-from owner-ietf-smime@mail.imc.org)
Received: (from majordom@localhost) by above.proper.com (8.12.10/8.12.9/Submit) id h9Q9e4vV003420 for ietf-smime-bks; Sun, 26 Oct 2003 01:40:04 -0800 (PST)
X-Authentication-Warning: above.proper.com: majordom set sender to owner-ietf-smime@mail.imc.org using -f
Received: from brutesquadlabs.com (gtec136-m.isomedia.com [207.115.67.136] (may be forged)) by above.proper.com (8.12.10/8.12.8) with ESMTP id h9Q9e2I7003378 for <ietf-smime@imc.org>; Sun, 26 Oct 2003 01:40:03 -0800 (PST) (envelope-from blake@brutesquadlabs.com)
Received: from DEXTER ([192.168.0.12]) by brutesquadlabs.com with ESMTP ; Sun, 26 Oct 2003 01:39:57 -0800
From: Blake Ramsdell <blake@brutesquadlabs.com>
To: jimsch@exmsft.com, ietf-smime@imc.org
Subject: RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04
Date: Sun, 26 Oct 2003 01:39:57 -0800
Message-ID: <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAARMPfbnbp50SwK3EZjypY2MKAAAAQAAAAd7EwJ18jpUG3pmeh4yAmOwEAAAAA@brutesquadlabs.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.2627
In-Reply-To: <001a01c35155$48f4ab10$8b40a051@augustcellars.local>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Importance: Normal
Sender: owner-ietf-smime@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-smime/mail-archive/>
List-ID: <ietf-smime.imc.org>
List-Unsubscribe: <mailto:ietf-smime-request@imc.org?body=unsubscribe>
Content-Transfer-Encoding: 7bit
> -----Original Message----- > From: owner-ietf-smime@mail.imc.org > [mailto:owner-ietf-smime@mail.imc.org] On Behalf Of Jim Schaad > Sent: Wednesday, July 23, 2003 1:02 PM > To: 'Blake Ramsdell'; ietf-smime@imc.org > Subject: RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04 > > Comments are on the -05 version of the document. > > 1. Section 1.4 talks about version 3 not version 3.1 agents. Updated: S/MIME version 3.1 agents should attempt to have the greatest interoperability possible with agents for prior versions of S/MIME. S/MIME version 2 is described in RFC 2311 through RFC 2315, inclusive and S/MIME version 3 is described in RFC 2630 through RFC 2634 inclusive. RFC 2311 also has historical information about the development of S/MIME. > 2. Section 2.1: Given your request for manditory inclusion of hash > algorithms in DigestAlgorithmIdentifier, is there a reason you don't > make population here atleast a SHOULD if not a MUST? Well, if you're referring to my position on 5/5/03, I believe this field to be valueless, so it doesn't matter to me. Not changed unless there's some new information that I am missing. > 3. Section 2.2: There is no techincal reason that an S/MIME v2 client > cannot be augmented to verify an id-dsa-with-sha1 signature. This > statement should be that S/MIME v2 clients are only REQUIRED to > implement rsaEncryption with either SHA-1 or MD5. Updated: Also note that S/MIME v2 clients are only required to verify digital signatures using the rsaEncryption algorithm with SHA-1 or MD5, and may not implement id-dsa-with-sha1 at all. > 4. Section 2.2: The required hash algorithms supported with > rsaEncryption needs to be noded as part of this section. Updated: If using rsaEncryption, sending and receiving agents MUST support the algorithms in section 2.1 as specified. > 5. Section 2.3: Agents should support ES Diffie-Hellman. SS is not a > requirement. Updated: Sending and receiving agents SHOULD support Diffie-Hellman defined in [CMSALG], using the ephemeral-static mode. > 6. Section 2.4: CMS does not define the CompressedData content type > last time I checked. Updated: There are several CMS content types. Of these, only the Data, SignedData, EnvelopedData and CompressedData content types are currently used for S/MIME. > 7. Section 2.4.4: Is there a reason why there is not any text > describing when one should and when one should not compress > data? (i.e. > don't compress after encryption). Add reference to section 3.6? Updated: See section 3.6 for further guidance on the use of this type in conjunction with other CMS types. > 8. Section 2.5: The text "Sending agents SHOULD generate > one instance > of the signingCertificate > signed attribute in each S/MIME message." should state > "signed attribute > in each SignerInfo structure". Updated: Sending agents SHOULD generate one instance of the signingCertificate signed attribute in each SignerInfo structure. > 9. Section 2.5.2, para 4: I would like to have the following text > added. " > Because of the requirement for identical encoding, individuals > documenting algorithms to be used in the SMIMECapabilities attribute > should explicitly document the correct byte sequence for the common > cases." Updated: The structure of the SMIMECapabilities attribute is to facilitate simple table lookups and binary comparisons in order to determine matches. For instance, the DER-encoding for the SMIMECapability for DES EDE3 CBC MUST be identically encoded regardless of the implementation. Because of the requirement for identical encoding, individuals documenting algorithms to be used in the SMIMECapabilities attribute should explicitly document the correct byte sequence for the common cases. > 10. Section 2.5.2, para 5: I think we need to remove the "In the case > of symmetric algorithms," phrase from this paragraph. The need for > dealing with parameters can occur for other algorithms such > as OAEP, KEM > and PSS. It may be necessary to distinguish more explicitly between > algorithm parameters such as rounds and block size as oppose > to the IV. Updated: For any capability, the associated parameters for the OID MUST specify all of the parameters necessary to differentiate between two instances of the same algorithm. For instance, the number of rounds and block size for RC5 must be specified in addition to the key length. > 11. Section 2.5.2 - where do we document SMimeCapabilities for RC2? > Should be a 40-bit vs 128-bit difference between these which needs an > ASN.1 structure and encoding. Based on reading of this > document I could > not correctly encode these values. I believe that this definition should be in the CMSALG document (but it's not). Should we bite the bullet and just stick it in this one? I agree that it needs to be specified somewhere, but I feel a bit icky about sticking it in here. > 12. Section 2.5.3, last para: what happended to the clock skew text > for SMIMECapabiltlies that clarifies what this sentence refers to? -- > found it in section 2.7.1 - not immediately apparent should have some > type of reference in either 2.5.2 or 2.5.3 or both. Updated 2.5.2: Section 2.7.1 explains a strategy for caching capabilities. Updated 2.5.3: Section 2.7.1 explains a strategy for caching preference data. > 13. Section 2.7.1, para 2: Change reference to section 2.5.2 Updated. > 14. Section 2.7.1.2: Should we remove this paragraph? It does not > really follow from the fact that you recived a signed (by me) then > encrypted message that I was actually the party that enrypted the > message. It could have been an DOS attacker, a gateway, an MLA and so > forth. Removed. I agree -- there is no way to know if a message that comes in that has encryption applied after the signature has any relationship to the signer. > 15. Section 2.7.1.3: Need to be updated to comment on AES. I see your point. The intent is to fall back to something useful for any version of S/MIME, and the older evil US-only RC2/40 clients. It's not clear what discussion you'd have about AES here. It may be the case that this rule should be removed completely. Comments? Not changed, but needs discussion. > 16. Section 3.1, last para: I would like to see some additional > comments provided to help people make the decision between a message > that is protecting the headers and a message which is an attachment. Added: When an S/MIME message is received, if the top-level protected MIME entity has a Content-Type of message/rfc822, it can be assumed that the intent was to provide header protection. This entity should be presented as the top-level message, taking into account header merging issues as previously discussed. > 17. Section 3.1.2 para 3: Change the "SHOULD NOT use 7-bit" > to "SHOULD > use binary" to make a positive rather than a negative statement. This was discussed in private mail also, and I believe that the following is reasonable text to put in. Updated: S/MIME implementations which "know" that all intended recipient(s) are capable of handling inner (all but the outermost) binary MIME objects SHOULD use binary encoding as opposed to a 7-bit-safe transfer encoding for the inner entities. The use of a 7-bit-safe encoding (such as base64) would unnecessarily expand the message size. Implementations MAY "know" that recipient implementations are capable of handling inner binary MIME entities either by interpreting the id-cap-preferBinaryInside sMIMECapabilities attribute, by prior agreement, or by other means. > 18. Section 3.1, General: Do you need to canonicalize before you > compress? I'm gonna say "yes". Updated: Each MIME entity MUST be converted to a canonical form that is uniquely and unambiguously representable in the environment where the signature is created and the environment where the signature will be verified. MIME entities MUST be canonicalized for enveloping and compressing as well as signing. > 19. Section 3.2.1: Can we really justify limiting the file name to > eight characters any more? All common windows platforms no > longer have > this restriction. Apple and Unix platforms have not had this > restriction for a long time (if ever). It's a SHOULD, so if you really wanna have more, go for it. > 20. Section 3.2.2: I would like to get some rewrites on this section > as to the purpose of S/MIME type. I think it is JUST to provide > information about the information (misspelt in the document) about the > contained content. It just happens that for display via UAs, the > distinction between signed and enveloped was consisted to be an > important part of the content. Additionally, I think this is the > correct direction for us to tell people about how to define new > smime-types in the future. > > The next question is weither a compressed only message would > show up in > my mailbox. I think that the correct smime-type for a compressed and > signed message is actually signed-data not compressed data. So I think your position is that the smime-type should have the "most relevant interpretation of the protected data", instead of the "actual type that is being protected". I think the best example is an IMAP client getting the headers and changing the icon next to the message to indicate what kind of message you've got. We can ask the audience, but I think that the conventional wisdom is that the smime-type represents the type of the outermost layer, and that's it -- just a further clarification of the overloaded application/pkcs7-mime. Fixed speling of information, but I want to hear more about how else we should change this to clarify the semantic (and what the semantic is). > 21. Section 3.4.1, last para: Currently this reads > > Messages signed using the signedData format cannot be viewed by a > recipient unless they have S/MIME facilities. However, if they have > S/MIME facilities, these messages can always be verified if they were > not changed in transit. > > But duh for the last sentence. The correct statement would be. > "However, the signedData format protects the message content > from being > changed by benign intermediate agents. Such agents might do line > wrapping or content-transfer encoding changes which would break the > signature." Indeed, duh for the last sentence. Updated: Messages signed using the signedData format cannot be viewed by a recipient unless they have S/MIME facilities. However, the signedData format protects the message content from being changed by benign intermediate agents. Such agents might do line wrapping or content-transfer encoding changes which would break the signature. > 22. Section 3.4.3.2, algorithm table: The last item in the > table needs > to be removed. The corect answer is that this value needs to > be defined > by documents describing other hashing algorithms. Updated: Any other (defined separately in algorithm profile or "unknown" if not defined) > 23. Section 3.4.3.3: Just for giggles, I think that adding a section > with the hex encoding of the acutal bytes hashed for this sample would > be a good idea. This is one of the things people always have problems > with when doing multipart signed data. Also it might be > interesting to > make the body a multipart/alternative. On the other hand this would > probably be better in an appendix. I think that getting too far with the examples should be left to the Examples draft and any successors. I do agree that adding the hex dump would be a good idea. My attempt at the hex dump is this, but I need at least one other person to double check it. Updated: The content that is digested (the first part of the multipart/signed) are the bytes: 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 0d 0a 0d 0a 54 68 69 73 20 69 73 20 61 20 63 6c 65 61 72 2d 73 69 67 6e 65 64 20 6d 65 73 73 61 67 65 2e 0d 0a > 24. Section 4: Reference to [CERT3] needs updating. Updated to [CERT31]. > 25. Section 4.1: Language and protocol statements needs to be updated > in this section to reflect the change in algorithms. Updated. Complete section is now: 4.1 Key Pair Generation All generated key pairs MUST be generated from a good source of non- deterministic random input [RANDOM] and the private key MUST be protected in a secure fashion. If an S/MIME agent needs to generate an RSA key pair, then the S/MIME agent or some related administrative utility or function SHOULD generate RSA key pairs using the following guidelines. A user agent SHOULD generate RSA key pairs at a minimum key size of 768 bits. A user agent MUST NOT generate RSA key pairs less than 512 bits long. Creating keys longer than 1024 bits may cause some older S/MIME receiving agents to not be able to verify signatures, but gives better security and is therefore valuable. A receiving agent SHOULD be able to verify signatures with keys of any size over 512 bits. Some agents created in the United States have chosen to create 512 bit keys in order to get more advantageous export licenses. However, 512 bit keys are considered by many to be cryptographically insecure. Implementors should be aware that multiple (active) key pairs may be associated with a single individual. For example, one key pair may be used to support confidentiality, while a different key pair may be used for authentication. > 26. Appendix B: Refernces need to be divided. I'm not sure what you mean by "divided"... Blake
- WG LAST CALL: draft-ietf-smime-rfc2633bis-04 Blake Ramsdell
- Re: WG LAST CALL: draft-ietf-smime-rfc2633bis-04 Russ Housley
- RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04 Blake Ramsdell
- RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04 Jim Schaad
- RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04 Blake Ramsdell
- RE: WG LAST CALL: draft-ietf-smime-rfc2633bis-04 Jim Schaad