rfc1848.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,633 行 · 第 1/5 页

TXT
1,633
字号
   First, the originator must retrieve the public key of the recipient.
   The retrieval may be from a local database or from a remote service.
   The acquisition of the recipient's public key is outside the scope of
   the specification, although Section 5 defines one possible mechanism.

   With the public key, the originator encrypts the data encrypting key
   according to the Key-Info: header defined below.  The complete set of
   headers generated by the encryption service is as follows.

   Version:
      indicates which version of the MOSS protocol the remaining headers
      represent and is defined in Section 2.1.2.1.

   DEK-Info:
      indicates the algorithm and mode used to encrypt the data.




Crocker, et al              Standards Track                    [Page 12]

RFC 1848             MIME Object Security Services          October 1995


   Recipient-ID:
      indicates the public key used to encrypt the data encrypting key
      that was used to encrypt the data.

   Key-Info:
      contains data encrypting key encrypted with the recipient's public
      key.

   Each invocation of the encryption service must emit exactly one
   Version: header, exactly one DEK-Info: header, and at least one pair
   of Recipient-ID: and Key-Info: headers.  Headers are always emitted
   in the order indicated.  The Recipient-ID: and Key-Info: headers are
   always emitted in pairs in the order indicated, one pair for each
   recipient of the encrypted data.  A Key-Info: header is always
   interpreted in the context of the immediately preceding Recipient-ID:
   header.

      IMPLEMENTORS NOTE: Implementors should always generate a
      Recipient-ID: and Key-Info header pair representing the originator
      of the encrypted data.  By doing so, if an originator sends a
      message to a recipient that is returned undelivered, the
      originator will be able to decrypt the message and determine an
      appropriate course of action based on its content.  If not, an
      originator will not be able to review the message that was sent.

2.2.1.1.  DEK-Info:

   The purpose of the data encrypting key information header is to
   indicate the algorithm and mode used to encrypt the data, along with
   any cryptographic parameters that may be required, e.g.,
   initialization vectors.  Its value is either a single argument
   indicating the algorithm and mode or a comma separated pair of
   arguments where the second argument carries any cryptographic
   parameters required by the algorithm and mode indicated in the first
   argument.

   The data encrypting key information header is defined by the grammar
   token <dekinfo> as follows.

      <dekinfo>  ::= "DEK-Info" ":" <dekalgid>
                     [ "," <dekparameters> ] CRLF

   The grammar tokens for the encryption algorithm and mode identifier
   (<dekalgid>) and the optional cryptographic parameters
   (<dekparameters>) are defined by RFC 1423.  They are also reprinted
   in Appendix B.





Crocker, et al              Standards Track                    [Page 13]

RFC 1848             MIME Object Security Services          October 1995


2.2.1.2.  Recipient-ID:

   The purpose of the recipient header is to identify the private key
   that must be used to decrypt the data encrypting key that will be
   used to decrypt the data.  Presumably the recipient owns the private
   key and thus is less interested in identifying the owner of the key
   and more interested in the private key value itself.  Nonetheless,
   the recipient header may convey either or both pieces of information:

      the public key corresponding to the private key to be used to
      decrypt the data encrypting key

      the name of the owner and which of the owner's private keys to use
      to decrypt the data encrypting key

   The decision as to what information to place in the value rests
   entirely with the originator.  The suggested choice is to include
   just the public key.  However, some recipients may prefer that
   originators not include their public key.  How this preference is
   conveyed to and managed by the originator is outside the scope of
   this specification.

   The recipient header is defined by the grammar token <recipid> as
   follows.

      <recipid>  ::= "Recipient-ID:" <id> CRLF

   The grammar token <id> is defined in Section 4.

2.2.1.3.  Key-Info:

   The purpose of the key information header is to convey the encrypted
   data encrypting key.  Its value is a comma separated list of two
   arguments: the algorithm and mode identifier in which the data
   encrypting key is encrypted and the encrypted data encrypting key.

   The key information header is defined by the grammar token
   <asymkeyinfo> as follows.

      <asymkeyinfo>  ::= "Key-Info" ":" <ikalgid> "," <asymencdek> CRLF

   The grammar tokens for the encryption algorithm and mode identifier
   (<ikalgid>) and the encrypted data encrypting key format
   (<asymsignmic>) are defined by RFC 1423.  They are also reprinted in
   Appendix B.

      IMPLEMENTORS NOTE: RFC 1423 is referenced by the PEM protocol,
      which includes support for symmetric signatures and key



Crocker, et al              Standards Track                    [Page 14]

RFC 1848             MIME Object Security Services          October 1995


      management.  As a result, some of the grammar tokens defined
      there, for example, <ikalgid>, will include options that are not
      legal for this protocol.  These options must be ignored and have
      not been included in the appendix.

2.2.2.  application/moss-keys Content Type Definition

   (1)  MIME type name: application

   (2)  MIME subtype name: moss-keys

   (3)  Required parameters: none

   (4)  Optional parameters: none

   (5)  Encoding considerations: quoted-printable is always sufficient

   (6)  Security considerations: none

   The "application/moss-keys" content type is used on the first body
   part of an enclosing multipart/encrypted.  Its content is comprised
   of the data encryption key used to encrypt the data in the second
   body part and other control information required to decrypt the data,
   as defined by Section 2.2.1.  The label "application/moss-keys" must
   be used as the value of the protocol parameter of the enclosing
   multipart/encrypted; the protocol parameter must be present.

   An application/moss-keys body part is constructed as follows:

      Content-Type: application/moss-keys

      <mosskeys>

   where the <mosskeys> token is defined as follows.

      <mosskeys>      ::= <version> <dekinfo> 1*<recipasymflds>

      <version>       ::= "Version:" "5" CRLF

      <dekinfo>       ::= "DEK-Info" ":" <dekalgid>
                          [ "," <dekparameters> ] CRLF

      <recipasymflds> ::= <recipid> <asymkeyinfo>

      <recipid>       ::= "Recipient-ID:" <id> CRLF

      <asymkeyinfo>   ::= "Key-Info" ":" <ikalgid> "," <asymencdek> CRLF




Crocker, et al              Standards Track                    [Page 15]

RFC 1848             MIME Object Security Services          October 1995


   The token <id> is defined in Section 4.  The token <version> is
   defined in Section 2.1.2.1.  All other tokens are defined in Section
   2.2.1.3.

2.2.3.  Use of multipart/encrypted Content Type

   The definition of the multipart/encrypted body part in [7] specifies
   three steps for creating the body part.


   (1)  The body part to be encrypted is created according to a local
        convention, for example, with a text editor or a mail user
        agent.


   (2)  The body part is prepared for encryption according to the
        protocol parameter, in this case the body part must be in MIME
        canonical form.


   (3)  The prepared body part is encrypted according to the protocol
        parameter, in this case according to Section 2.2.1.


   The multipart/encrypted content type is constructed as follows.


   (1)  The value of its required parameter "protocol" is set to
        "application/moss-keys".


   (2)  The first body part is labeled "application/moss-keys" and is
        filled with the control information generated by the encryption
        service.


   (3)  The encrypted body part becomes the content of its second body
        part, which is labeled "application/octet-stream".


   A multipart/encrypted content type with the MOSS protocol might look
   as follows:









Crocker, et al              Standards Track                    [Page 16]

RFC 1848             MIME Object Security Services          October 1995


      Content-Type: multipart/encrypted;
        protocol="application/moss-keys";
        boundary="Encrypted Message"

      --Encrypted Message
      Content-Type: application/moss-keys

      Version: 5
      DEK-Info: DES-CBC,DEK-INFORMATION
      Recipient-ID: ID-INFORMATION
      Key-Info: RSA,KEY-INFORMATION

      --Encrypted Message
      Content-Type: application/octet-stream

      ENCRYPTED-DATA
      --Encrypted Message--

   where DEK-INFORMATION, ID-INFORMATION, and KEY-INFORMATION are
   descriptive of the content that would appear in a real body part.

3.  Removing MIME Object Security Services

   The verification of the MOSS digital signature service requires the
   following components.


   (1)  A recipient to verify the digital signature.


   (2)  A multipart/signed body part with two body parts: the signed
        data and the control information.


   (3)  The public key of the originator.


   The signed data and control information of the enclosing
   multipart/signed are prepared according to the description below.
   The digital signature is verified by re-computing the hash of the
   data, decrypting the hash value in the control information with the
   originator's public key, and comparing the two hash values.  If the
   two hash values are equal, the signature is valid.

   The decryption of the MOSS encryption service requires the following
   components.





Crocker, et al              Standards Track                    [Page 17]

RFC 1848             MIME Object Security Services          October 1995


   (1)  A recipient to decrypt the data.


   (2)  A multipart/encrypted body part with two body parts: the
        encrypted data and the control information.


   (3)  The private key of the recipient.


   The encrypted data and control information of the enclosing
   multipart/encrypted are prepared according to the description below.
   The data encrypting key is decrypted with the recipient's private key
   and used to decrypt the data.

   The next two sections describe the digital signature and encryption
   services in detail, respectively.

3.1.  Digital Signature Service

   This section describes the processing steps necessary to verify the
   MOSS digital signature service.  The definition of the
   multipart/signed body part in [7] specifies three steps for receiving

⌨️ 快捷键说明

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