rfc2660.txt

来自「中、英文RFC文档大全打包下载完全版 .」· 文本 代码 · 共 1,642 行 · 第 1/5 页

TXT
1,642
字号
   Note that some Content-Privacy-Domains, notably likely future   revisions of MOSS and CMS may have support for symmetric integrity   protection The MAC-Info field need not be used in such circumstances.   Rather, the native syntax is preferred. Keys exchanged with Key-   Assign, however, may be used in this situation.2.5.  Content   The content of the message is largely dependent upon the values of   the Content-Privacy-Domain and Content-Transfer-Encoding fields.Rescorla & Schiffman          Experimental                     [Page 12]RFC 2660         The Secure HyperText Transfer Protocol      August 1999   For a CMS message, with '8BIT' Content-Transfer-Encoding, the content   should simply be the CMS message itself.   If the Content-Privacy-Domain is MOSS, the content should consist of   a MOSS Security Multipart as described in RFC1847.   It is expected that once the privacy enhancements have been removed,   the resulting (possibly protected) contents will be a normal HTTP   request. Alternately, the content may be another Secure-HTTP message,   in which case privacy enhancements should be unwrapped until clear   content is obtained or privacy enhancements can no longer be removed.   (This permits embedding of enhancements, such as sequential Signed   and Enveloped enhancements.) Provided that all enhancements can be   removed, the final de-enhanced content should be a valid HTTP request   (or response) unless otherwise specified by the Content-Type line.   Note that this recursive encapsulation of messages potentially   permits security enhancements to be applied (or removed) for the   benefit of intermediaries who may be a party to the transaction   between a client and server (e.g., a proxy requiring client   authentication).  How such intermediaries should indicate such   processing is described in Section 7.2.1.2.6.  Encapsulation Format Options2.6.1.  Content-Privacy-Domain: CMS   Content-Privacy-Domain 'CMS' follows the form of the CMS standard   (see Appendix).   Message protection may proceed on two orthogonal axes: signature and   encryption. Any message may be either signed, encrypted, both, or   neither. Note that the 'auth' protection mode of S-HTTP is provided   independently of CMS coding via the MAC-Info header of section 2.3.6   since CMS does not support a 'KeyDigestedData' type, although it does   support a 'DigestedData' type.2.6.1.1.  Signature   This enhancement uses the 'SignedData' type of CMS.  When digital   signatures are used, an appropriate certificate may either be   attached to the message (possibly along with a certificate chain) as   specified in CMS or the sender may expect the recipient to obtain its   certificate (and/or chain) independently.  Note that an explicitly   allowed instance of this is a certificate signed with the private   component corresponding to the public component being attested to.   This shall be referred to as a self-signed certificate. What, if any,   weight to give to such a certificate is a purely local matter.  InRescorla & Schiffman          Experimental                     [Page 13]RFC 2660         The Secure HyperText Transfer Protocol      August 1999   either case, a purely signed message is precisely CMS compliant.2.6.1.2.  Encryption2.6.1.2.1.  Encryption -- normal, public key   This enhancement is performed precisely as enveloping (using either '   EnvelopedData' types) under CMS. A message encrypted in this fashion,   signed or otherwise, is CMS compliant. To have a message which is   both signed and encrypted, one simply creates the CMS SignedData   production and encapsulates it in EnvelopedData as described in CMS.2.6.1.2.2.  Encryption -- prearranged key   This uses the 'EncryptedData' type of CMS. In this mode, we encrypt   the content using a DEK encrypted under cover of a prearranged   session key (how this key may be exchanged is discussed later), with   key identification information specified on one of the header lines.   The IV is in the EncryptedContentInfo type of the EncryptedData   element.  To have a message which is both signed and encrypted, one   simply creates the CMS SignedData production and encapsulates it in   EncryptedData as described in CMS.2.6.2.  Content-Privacy-Domain: MOSS   The body of the message should be a MIME compliant message with   content type that matches the Content-Type line in the S-HTTP   headers.  Encrypted messages should use multipart/encrypted. Signed   messages should use multipart/signed. However, since multipart/signed   does not convey keying material, is is acceptable to use   multipart/mixed where the first part is application/mosskey-data and   the second part is multipart/mixed in order to convey certificates   for use in verifying the signature.   Implementation Note: When both encryption and signature are applied   by the same agent, signature should in general be applied before   encryption.2.6.3.  Permitted HTTP headers2.6.3.1.  Overview   In general, HTTP [RFC-2616] headers should appear in the inner   content (i.e. the message/http) of an S-HTTP message but should not   appear in the S-HTTP message wrapper for security reasons. However,   certain headers need to be visible to agents which do not have access   to the encapsulated data. These headers may appear in the S-HTTP   headers as well.Rescorla & Schiffman          Experimental                     [Page 14]RFC 2660         The Secure HyperText Transfer Protocol      August 1999   Please note that although brief descriptions of the general purposes   of these headers are provided for clarity, the definitive reference   is [RFC-2616].2.6.3.2.  Host   The host header specificies the internet host and port number of the   resource being requested. This header should be used to disambiguate   among multiple potential security contexts within which this message   could be interpreted. Note that the unwrapped HTTP message will have   it's own Host field (assuming it's an HTTP/1.1 message). If these   fields do not match, the server should respond with a 400 status   code.2.6.3.3.  Connection   The Connection field has precisely the same semantics in S-HTTP   headers as it does in HTTP headers. This permits persistent   connections to be used with S-HTTP.3.  Cryptographic Parameters3.1.  Options Headers   As described in Section 1.3.2, every S-HTTP request is (at least   conceptually) preconditioned by the negotiation options provided by   the potential receiver. The two primary locations for these options   are           1. In the headers of an HTTP Request/Response.           2. In the HTML which contains the anchor being dereferenced.   There are two kinds of cryptographic options which may be provided:   Negotiation options, as discussed in Section 3.2 convey a potential   message recipient's cryptographic preferences. Keying options, as   discussed in Section 3.3 provide keying material (or pointers to   keying material) which may be of use to the sender when enhancing a   message.   Binding cryptographic options to anchors using HTML extensions is the   topic of the companion document [SHTML] and will not be treated here.Rescorla & Schiffman          Experimental                     [Page 15]RFC 2660         The Secure HyperText Transfer Protocol      August 19993.2.  Negotiation Options3.2.1.  Negotiation Overview   Both parties are able to express their requirements and preferences   regarding what cryptographic enhancements they will permit/require   the other party to provide. The appropriate option choices depend on   implementation capabilities and the requirements of particular   applications.   A negotiation header is a sequence of specifications each conforming   to a four-part schema detailing:        Property -- the option being negotiated, such as bulk encryption        algorithm.        Value -- the value being discussed for the property, such as        DES-CBC        Direction -- the direction which is to be affected, namely:        during reception or origination (from the perspective of the        originator).        Strength -- strength of preference, namely: required, optional,        refused   As an example, the header line:           SHTTP-Symmetric-Content-Algorithms: recv-optional=DES-CBC,RC2   could be thought to say: "You are free to use DES-CBC or RC2 for bulk   encryption for encrypting messages to me."   We define new headers (to be used in the encapsulated HTTP header,   not in the S-HTTP header) to permit negotiation of these matters.3.2.2.  Negotiation Option Format   The general format for negotiation options is:           Option = Field ":" Key-val ";" *(Key-val)           Key-val = Key "=" Value *("," Value)           Key = Mode"-"Action             ; This is represented as one                                           ; token without whitespace           Mode = "orig" | "recv"           Action = "optional" | "required" | "refused"Rescorla & Schiffman          Experimental                     [Page 16]RFC 2660         The Secure HyperText Transfer Protocol      August 1999   The <Mode> value indicates whether this <Key-val> refers to what the   agent's actions are upon sending privacy enhanced messages as opposed   to upon receiving them. For any given mode-action pair, the   interpretation to be placed on the enhancements (<Value>s) listed is:        'recv-optional:' The agent will process the enhancement if the        other party uses it, but will also gladly process messages        without the enhancement.        'recv-required:' The agent will not process messages without        this enhancement.        'recv-refused:' The agent will not process messages with this        enhancement.        'orig-optional:' When encountering an agent which refuses this        enhancement, the agent will not provide it, and when        encountering an agent which requires it, this agent will provide        it.        'orig-required:' The agent will always generate the enhancement.        'orig-refused:' The agent will never generate the enhancement.   The behavior of agents which discover that they are communicating   with an incompatible agent is at the discretion of the agents. It is   inappropriate to blindly persist in a behavior that is known to be   unacceptable to the other party. Plausible responses include simply   terminating the connection, or, in the case of a server response,   returning 'Not implemented 501'.   Optional values are considered to be listed in decreasing order of   preference. Agents are free to choose any member of the intersection   of the optional lists (or none) however.   If any <Key-Val> is left undefined, it should be assumed to be set to   the default. Any key which is specified by an agent shall override   any appearance of that key in any <Key-Val> in the default for that   field.Rescorla & Schiffman          Experimental                     [Page 17]RFC 2660         The Secure HyperText Transfer Protocol      August 19993.2.3.  Parametrization for Variable-length Key Ciphers   For ciphers with variable key lengths, values may be parametrized   using the syntax <cipher>'['<length>']'   For example, 'RSA[1024]' represents a 1024 bit key for RSA. Ranges   may be represented as           <cipher>'['<bound1>'-'<bound2>']'   For purposes of preferences, this notation should be treated as if it   read (assuming x and y are integers)           <cipher>[x], <cipher>[x+1],...<cipher>[y] (if x<y)   and           <cipher>[x], <cipher>[x-1],...<cipher>[y] (if x>y)   The special value 'inf' may be used to denote infinite length.   Using simply <cipher> for such a cipher shall be read as the maximum   range possible with the given cipher.3.2.4.  Negotiation Syntax3.2.4.1.  SHTTP-Privacy-Domains   This header refers to the Content-Privacy-Domain type of section

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?