[要約] RFC 9219 は、JMAP に S/MIME 署名検証ステータスを返すための拡張を定義しています。この拡張の目的は、メールのセキュリティを向上させることです。

Internet Engineering Task Force (IETF)                       A. Melnikov
Request for Comments: 9219                                     Isode Ltd
Category: Standards Track                                     April 2022
ISSN: 2070-1721
        

S/MIME Signature Verification Extension to the JSON Meta Application Protocol (JMAP)

S / MIME署名検証JSONメタアプリケーションプロトコルへの拡張(JMAP)

Abstract

概要

This document specifies an extension to "The JSON Meta Application Protocol (JMAP) for Mail" (RFC 8621) for returning the S/MIME signature verification status.

このドキュメントは、S / MIME署名検証ステータスを返すための「MailのJSONメタApplication Protocol(JMAP)」(RFC 8621)への拡張を指定します。

Status of This Memo

本文書の位置付け

This is an Internet Standards Track document.

これはインターネット規格のトラック文書です。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

この文書はインターネットエンジニアリングタスクフォース(IETF)の製品です。IETFコミュニティのコンセンサスを表します。それはパブリックレビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による出版の承認を受けました。インターネット規格に関する詳細情報は、RFC 7841のセクション2で利用できます。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9219.

この文書の現在のステータス、任意のエラータ、およびフィードバックを提供する方法は、https://www.rfc-editor.org/info/frfc9219で入手できます。

Copyright Notice

著作権表示

Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(c)2022 IETF信頼と文書の著者として識別された人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

この文書は、この文書の公開日に有効なIETF文書(https://trustee.ietf.org/License-Info)に関するBCP 78およびIETF信頼の法的規定の対象となります。この文書に関してあなたの権利と制限を説明するので、これらの文書をよくレビューしてください。この文書から抽出されたコードコンポーネントには、信託法定規定のセクション4。

Table of Contents

目次

   1.  Introduction
   2.  Conventions Used in This Document
   3.  Addition to the Capabilities Object
   4.  Extension for S/MIME Signature Verification
     4.1.  Extension to Email/get
       4.1.1.  "smimeStatus" Response Property Extensibility
     4.2.  Extension to Email/query
     4.3.  Interaction with Email/changes
   5.  IANA Considerations
     5.1.  JMAP Capability Registration for "smimeverify"
   6.  Security Considerations
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Acknowledgements
   Author's Address
        
1. Introduction
1. はじめに

JMAP for Mail [RFC8621] is a JSON-based application protocol for synchronizing email data between a client and a server.

メール用JMAP [RFC8621]は、クライアントとサーバー間で電子メールデータを同期させるためのJSONベースのアプリケーションプロトコルです。

This document describes an extension to JMAP for returning the S/MIME signature verification status [RFC8551], without requiring a JMAP client to download the signature body part and all signed body parts (when the multipart/signed media type [RFC1847] is used) or to download and decode the Cryptographic Message Syntax (CMS) (when the application/pkcs7-mime media type (Section 3.2 of [RFC8551]) is used). The use of the extension implies the client trusts the JMAP server's S/MIME signature verification code and configuration. This extension is suitable for cases where reduction in network bandwidth and client-side code complexity outweigh security concerns about trusting the JMAP server to perform S/MIME signature verifications. One possible use case is when the same organization controls both the JMAP server and the JMAP client.

このドキュメントでは、JMAPクライアントをRFC8551]を返すためのJMAPへの拡張機能(RFC8551]、署名本文部分とすべての署名付きボディパーツをダウンロードする必要なく(マルチパート/署名メディアタイプ[RFC1847]が使用されている場合)または暗号化メッセージ構文(CMS)をダウンロードして復号する(アプリケーション/ PKCS7-MIMEメディアタイプ(RFC8551のセクション3.2)を使用している場合)。拡張機能を使用すると、クライアントがJMAPサーバーのS / MIMEシグネチャ検証コードと構成を信頼することを意味します。この拡張機能は、S / MIMEの署名検証を実行するためにJMAPサーバーの信頼を信頼することについてのネットワーク帯域幅とクライアント側のコードの複雑さの低減が懸念される場合に適しています。1つの可能なユースケースは、同じ組織がJMAPサーバーとJMAPクライアントの両方を制御するときです。

2. Conventions Used in This Document
2. この文書で使用されている規約

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

この文書のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" はBCP 14 [RFC2119] [RFC8174]で説明されているように、すべて大文字の場合にのみ解釈されます。

Type signatures, examples, and property descriptions in this document follow the conventions established in Section 1.1 of [RFC8620]. Data types defined in the core specification are also used in this document.

タイプシグネチャ、例、およびプロパティの説明は、[RFC8620]のセクション1.1で確立された規則に従います。この文書では、コア指定で定義されているデータ型も使用されています。

3. Addition to the Capabilities Object
3. 機能オブジェクトへの追加

The *capabilities* object is returned as part of the standard JMAP Session object; see Section 2 of [RFC8620]. Servers supporting this specification MUST add a property called "urn:ietf:params:jmap:smimeverify" to the capabilities object.

* Capabilities *オブジェクトは標準のJMAPセッションオブジェクトの一部として返されます。[RFC8620]のセクション2を参照してください。この仕様をサポートするサーバーは、 "urn:ietf:params:jmap:smimeverify"というプロパティを機能オブジェクトに追加する必要があります。

The value of this property is an empty object in both the JMAP Session _capabilities_ property and an account's _accountCapabilities_ property.

このプロパティの値は、JMAPセッション_capabilities_プロパティとアカウントの_accountcapabilities_プロパティの両方の空のオブジェクトです。

4. Extension for S/MIME Signature Verification
4. S / MIME署名検証のための拡張子
4.1. Extension to Email/get
4.1. 電子メール/ getの拡張

[RFC8621] defines the Email/get method for retrieving message-specific information. This document defines the following pseudo values in the _properties_ argument:

[RFC8621]メッセージ固有の情報を取得するための電子メール/ getメソッドを定義します。このドキュメントは、_properties_引数に次の疑似値を定義します。

*smimeStatus*: If "smimeStatus" is included in the list of requested properties, it MUST be interpreted by the server as a request to return the "smimeStatus" response property.

* SMIMESTATUS *:要求されたプロパティのリストに "smimestatus"が含まれている場合は、 "smimestatus"応答プロパティを返す要求としてサーバーによって解釈される必要があります。

*smimeStatusAtDelivery*: If "smimeStatusAtDelivery" is included in the list of requested properties, it MUST be interpreted by the server as a request to return the "smimeStatusAtDelivery" response property. (It is effectively the same as the "smimeStatus" value calculated at the date/time of delivery, as specified by "receivedAt".)

* SMIMESTATUSATDELiver *:要求されたプロパティのリストに "SmimestatusAtDelivery"が含まれている場合は、 "SmimestatusAtDelivery" Responseプロパティを返す要求としてサーバーによって解釈されなければなりません。(受信時刻 "で指定されているように、配達日時で計算された「SMIMESTATUS」の値と同じようになります。)

*smimeErrors*: If "smimeErrors" is included in the list of requested properties, it MUST be interpreted by the server as a request to return the "smimeErrors" response property.

* SMIMEERRORS *:要求されたプロパティのリストに "SmimeerRorrors"が含まれている場合は、 "Smimeerrors" Responseプロパティを返す要求としてサーバーによって解釈されなければなりません。

*smimeVerifiedAt*: If "smimeVerifiedAt" is included in the list of requested properties, it MUST be interpreted by the server as a request to return the "smimeVerifiedAt" response property.

* SMIMEVERIDAT *:要求されたプロパティのリストに "smimeveriedAt"が含まれている場合は、 "SmimeVeivedAt" Responseプロパティを返す要求としてサーバーによって解釈される必要があります。

The "smimeStatus" response property is defined as follows:

"smimestatus"応答プロパティは次のように定義されています。

*smimeStatus*: "String|null" (server-set). null signifies that the message doesn't contain any signature. Otherwise, this property contains the S/MIME signature and certificate verification status calculated according to [RFC8551], [RFC8550], and [RFC5280]. Possible string values of the property are listed below. Servers MAY return other values not defined below, as defined in extensions to this document. Clients MUST treat unrecognized values as "unknown" or "signed/failed". Note that the value of this property might change over time.

* SMIMESTATUS *: "String | null"(サーバー・セット)。nullメッセージに署名が含まれていないことを意味します。それ以外の場合、このプロパティには、[RFC8551]、[RFC8550]、[RFC5280]に従って計算されたS / MIME署名と証明書検証状況が含まれています。プロパティの可能な文字列値は以下のとおりです。サーバーは、このドキュメントへの拡張子で定義されているように、以下に定義されていない他の値を返すことがあります。クライアントは、認識されていない値を「不明」または「署名/失敗」として扱う必要があります。このプロパティの値は時間とともに変わる可能性があります。

unknown: An S/MIME message, but it was neither signed nor encrypted. This can also be returned for a multipart/signed message that contains an unrecognized signing protocol (for example, OpenPGP).

不明:S / MIMEメッセージではありませんが、署名も暗号化されていませんでした。これは、認識されていない署名プロトコルを含むマルチパート/署名メッセージについても返すこともできます(たとえば、OpenPGP)。

signed: An S/MIME signed message, but the signature was not yet verified. Some servers might not attempt to verify a signature until a particular message is requested by the client. (This is a useful optimization for a JMAP server to avoid doing work until exact information is needed. A JMAP client that only needs to display an icon that signifies presence of an S/MIME signature can still use this value.) JMAP servers compliant with this document SHOULD attempt signature verification and return "signed/verified" or "signed/failed" instead of this signature status.

署名された:S / MIME署名されたメッセージが表示されていますが、署名はまだ検証されていませんでした。一部のサーバーは、特定のメッセージがクライアントから要求されるまで署名を検証しようとしない可能性があります。(これはJMAPサーバーが正確な情報が必要になるまで避けるための便利な最適化です。S / MIME署名の存在を意味するアイコンを表示する必要があるJMAPクライアントは、まだこの値を使用できます。)JMAPサーバこのドキュメントは、この署名ステータスの代わりに「署名/検証済み」または「署名/失敗」を返します。

signed/verified: An S/MIME signed message, and the sender's signature was successfully verified according to [RFC8551] and [RFC8550]. Additionally, the signer email address extracted from the S/ MIME certificate matches the From header field value, and the signer certificate SHOULD be checked for revocation.

署名/検証済み:S / MIME署名メッセージ、および送信者の署名は[RFC8551]と[RFC8550]に従って正常に検証されました。さらに、S / MIME証明書から抽出された署名者Eメールアドレスは、From Headerフィールド値と一致し、署名者証明書を失効のためにチェックする必要があります。

signed/failed: S/MIME signed message, but the signature failed to verify according to [RFC8551] and [RFC8550]. This might be because of a policy-related decision (e.g., the message signer email address doesn't match the From header field value), the message was modified, the signer's certificate has expired or was revoked, etc.

署名/失敗しました:S / MIME署名付きメッセージですが、署名は[RFC8551]と[RFC8550]に従って検証できませんでした。これは、ポリシー関連の決定(例えば、メッセージ署名者の電子メールアドレスはヘッダーフィールド値と一致しない)が原因である可能性があります。メッセージは変更され、署名者の証明書が期限切れまたは取り消されたなど、

encrypted+signed/verified: This value is reserved for future use. It is typically handled in the same way as "signed/verified".

暗号化された署名/検証済み:この値は将来の使用のために予約されています。通常、「署名/検証済み」と同じ方法で処理されます。

encrypted+signed/failed: This value is reserved for future use. It is typically handled in the same way as "signed/failed".

暗号化署名/失敗:この値は将来の使用のために予約されています。通常、「署名/失敗」と同じ方法で処理されます。

The "smimeStatusAtDelivery" response property has the same syntax as "smimeStatus" but is calculated in relationship to the "receivedAt" date/time. Unlike "smimeStatus", the "smimeStatusAtDelivery" response property value doesn't change unless trust anchors are added. (For example, addition of a trust anchor can change the value of a message "smimeStatusAtDelivery" property from "signed/failed" to "signed/verified". Note that trust anchor removal doesn't affect this response property.) The "smimeStatusAtDelivery" response property value allows clients to compare the S/MIME signature verification status at delivery with the current status as returned by "smimeStatus", for example, to help to answer questions like "was the signature valid at the time of delivery?".

"SmimestatusAtDelivery"応答プロパティは "smimeStatus"と同じ構文を持ちますが、 "Receired"日時との関係で計算されます。"Smimestatus"とは異なり、信頼アンカーが追加されていない限り、 "SmimestatusAtdelivery"応答プロパティ値は変わりません。(たとえば、信頼アンカーの追加は、「Signed / Verified」から「Signed / Verified」のメッセージ「SmimestatusAtDelivery」プロパティの値を変更できます。信頼アンカー削除はこの応答性に影響を与えません。)「SmimestatusAtdelivery」)「応答プロパティ値は、「Smimestatus」によって返されるように、「Smimestatus」によって返されるように、クライアントが現在のステータスを配信時のS / MIMEシグネチャ検証ステータスを比較できます。

Note that the "smimeStatusAtDelivery" response property value doesn't have to be calculated at delivery time. A JMAP server can defer its calculation until it is explicitly requested; however, once it is calculated, its value is remembered for later use.

「SMIMeStatusAtDelivery」応答プロパティ値は、納期時に計算する必要はありません。JMAPサーバーは、明示的に要求されるまでその計算を延期できます。ただし、計算されると、その値は後で使用するために記憶されます。

The "smimeErrors" response property is defined as follows:

"SmimeErrors" Responseプロパティは次のように定義されています。

*smimeErrors*: "String[]|null" (server-set). null signifies that the message doesn't contain any signature or that there were no errors when verifying the S/MIME signature. (That is, this property is non-null only when the corresponding "smimeStatus" response property value is "signed/failed" or "encrypted+signed/failed". Note that future extensions to this document can specify other "smimeStatus" values that can be used with "smimeErrors".) Each string in the array is a human-readable description (in the language specified in the Content-Language header field, if any) of a problem with the signature, the signing certificate, or the signing certificate chain. (See Section 3.8 of [RFC8620] in regards to how this is affected by the language selection.) In one example, the signing certificate might be expired and the message From email address might not correspond to any of the email addresses in the signing certificate. In another example, the certificate might be expired and the JMAP server might be unable to retrieve a Certificate Revocation List (CRL) for the certificate. In both of these cases, there would be 2 elements in the array.

* Smimeerrors *: "String [] | NULL"(サーバーセット)。 NULLは、メッセージに署名が含まれていないこと、またはS / MIME署名を検証するときにエラーがないことを意味します。 (つまり、このプロパティは、対応する "SMIMESTATUS"応答プロパティ値が "署名/失敗"または "暗号化署名/失敗"の場合にのみnullです。このドキュメントへの将来の拡張機能は他の "smimestatus"値を指定できます。 「Smimeerrors」と一緒に使用されます。)配列内の各文字列は、シグネチャ、署名証明書、または署名証明書の問題の問題のある人間が読める説明(Content-Languageヘッダーフィールドに指定された言語で)です。鎖。一例では、署名証明書が期限切れになり、メールアドレスからのメッセージが署名証明書のいずれかの電子メールアドレスに対応しない場合があります。 。別の例では、証明書が期限切れになり、JMAPサーバーは証明書の証明書失効リスト(CRL)を取得できない可能性があります。これらの場合の両方で、アレイ内に2つの要素があるでしょう。

The "smimeVerifiedAt" response property is defined as follows:

"smimeverified"応答プロパティは次のように定義されています。

*smimeVerifiedAt*: "UTCDate|null" (server-set). null signifies that the message doesn't contain any S/MIME signature or that there is a signature, but there was no attempt to verify it. (Retrieval of the "smimeStatus" value can be used to distinguish these 2 cases). In all other cases, it is set to the date and time of when the S/MIME signature was most recently verified. Note that a request to fetch "smimeStatus", "smimeStatusAtDelivery", and/or "smimeErrors" would force this response property to be set to a non-null value if an S/MIME signature exists.

* SMIMEVERIDAT *: "utcdate | null"(サーバーセット)。nullメッセージにS / MIMEシグネチャが含まれていないこと、または署名があることを意味しますが、検証しようとしていません。(「SMIMESTATUS」の値を使用して、これらの2例を区別することができます)。他のすべての場合において、それはS / MIME署名が最後に検証された日時に設定されています。「SMIMESTATUS」、「SMIMESTATUSATDELivery」、および/または「SMIMEERRORS」を取り出す要求は、S / MIME署名が存在する場合、この応答プロパティを非NULL値に設定することに注意してください。

The "smimeStatus" and "smimeErrors" values are calculated at the time the corresponding JMAP request is processed (but see below about the effect of result caching), not at the time when the message is generated (according to its Date header field value). In all cases, "smimeVerifiedAt" is set to the time when "smimeStatus" and "smimeErrors" were last updated. As recalculating these values is expensive for the server, they MAY be cached for up to 24 hours from the moment when they were calculated.

"SMIMESTATUS"および "SMIMEERRORRORS"値は、対応するJMAP要求が処理される時点で計算されます(ただし、結果キャッシュの効果については、メッセージが生成された時点で(日付ヘッダーフィールド値に従って)。。すべての場合において、 "smimeStatus"と "smimeerrors"が最後に更新された時刻に "SmimeVeirdAt"が設定されています。これらの値を再計算するので、サーバーにとって高価であるため、計算された瞬間から最大24時間までキャッシュされることがあります。

Example 1: Retrieval of minimal information about a message, including its From, Subject, and Date header fields, as well as the S/MIME signature verification status at delivery and date/time when the message was received.

例1:ETSからのメッセージに関するメッセージに関する最小限の情報の検索メッセージの受信時の配信と日時のS / MIMEシグネチャ検証ステータス。

   ["Email/get", {
   "ids": [ "fe123u457" ],
   "properties": [ "mailboxIds", "from", "subject", "date",
    "smimeStatusAtDelivery", "receivedAt" ]
   }, "#1"]
        

This might result in the following response:

これにより、次の応答が発生する可能性があります。

   [["Email/get", {
      "accountId": "abc",
      "state": "51234123231",
      "list": [
        {
          "id": "fe123u457",
          "mailboxIds": { "f123": true },
          "from": [{"name": "Joe Bloggs",
                  "email": "joe@bloggs.example.net"}],
          "subject": "Dinner tonight?",
          "date": "2020-07-07T14:12:00Z",
          "smimeStatusAtDelivery": "signed/verified",
          "receivedAt": "2020-07-07T14:15:18Z"
        }
      ]
   }, "#1"]]
        

Example 2: Retrieval of minimal information about a message, including its From, Subject, and Date header fields, as well as the latest S/MIME signature verification status, S/MIME verification errors (if any), and when the S/MIME signature status was last verified. The response contains 2 S/MIME errors related to S/MIME signature verification.

例2:FROM、Subject、Dateヘッダーフィールド、および最新のS / MIMEシグネチャ検証ステータス、S / MIME検証エラー、およびS / MIMEの場合、メッセージに関する最小限の情報を検索します。署名のステータスが最後に検証されました。応答には、S / MIMEシグネチャ検証に関連する2秒間のエラーが含まれています。

   ["Email/get", {
   "ids": [ "ag123u123" ],
   "properties": [ "mailboxIds", "from", "subject", "date",
    "smimeStatus", "smimeErrors", "smimeVerifiedAt" ]
   }, "#1"]
        

This might result in the following response:

これにより、次の応答が発生する可能性があります。

   [["Email/get", {
      "accountId": "abc",
      "state": "47234123231",
      "list": [
        {
          "id": "ag123u123",
          "mailboxIds": { "f123": true },
          "from": [{"name": "Jane Doe",
                  "email": "jdoe@example.com"}],
          "subject": "Company takeover",
          "date": "2020-01-31T23:00:00Z",
          "smimeStatus": "signed/failed",
          "smimeErrors": [
            "From email address doesn't match the certificate",
            "Can't retrieve CRL from the CRL URL"],
          "smimeVerifiedAt": "2020-03-01T12:11:19Z"
        }
      ]
   }, "#1"]]
        
4.1.1. "smimeStatus" Response Property Extensibility
4.1.1. "smimestatus"応答プロパティの拡張性

Future extensions to this document can specify extra allowed values for the "smimeStatus" response property. All values (defined in this document or in extensions to this document) MUST be in ASCII. (Note that this response property contains tokens; thus, it is not subject to internationalization or localization).

このドキュメントへの将来の拡張機能は、 "smimestatus"応答プロパティに追加の許容値を指定できます。すべての値(この文書で、またはこのドキュメントへの拡張子で定義されている)はASCIIになければなりません。(この応答プロパティにはトークンが含まれています。したがって、国際化やローカライズの影響を受けません。

New "smimeStatus" response property values defined in extensions may affect the behavior of properties, such as the "smimeErrors" response property of Email/get (see Section 4.1) or the "hasVerifiedSmime" property of Email/query (see Section 4.2). In particular, the new values can be treated similarly to values defined in this document.

拡張機能で定義されている新しい "smimestatus"応答プロパティ値は、電子メール/ getの "smimeerrors"応答プロパティ(セクション4.1を参照)、または "haseverifiedsmimimime"プロパティなど、プロパティの動作に影響を与えます(セクション4.2を参照)。特に、新しい値は、この文書で定義されている値と同様に扱うことができます。

For example, a putative JMAP extension for automatically decrypting S/MIME messages can specify two additional values, one specifying that a message is both encrypted and signed with a valid S/MIME signature (e.g. "encrypted+signed/verified") and another one specifying that a message is both encrypted and signed with an invalid S/MIME signature (e.g. "encrypted+signed/failed"). The former value can be treated as "signed/verified" (and would thus affect "hasVerifiedSmime") and the latter can be treated as "signed/ failed" (and thus can be used with "smimeErrors").

たとえば、S / MIMEメッセージを自動的に復号化するための推定JMAP拡張機能は、メッセージが両方とも暗号化され、有効なS / MIME署名(例えば「暗号化署名/検証」)で署名されていることを指定する2つの追加値を指定できます。メッセージが暗号化され、無効なS / MIME署名(「暗号化署名/失敗」)で署名されていることを両方とも)。前者の値は「署名/検証済み」として扱うことができます(したがって、「HaseVerifiedSmimime」に影響を与える可能性があります)、後者は「署名/失敗」として扱うことができます(したがって「Smimeerrors」で使用できます)。

4.2. Extension to Email/query
4.2. 電子メール/クエリの拡張

[RFC8621] defines the Email/query method for searching for messages with specific properties. This document defines the following properties of the *FilterCondition* object:

[RFC8621]特定のプロパティを持つメッセージを検索するための電子メール/クエリ方法を定義します。このドキュメントでは、* FilterCondition *オブジェクトの次のプロパティを定義します。

*hasSmime*: "Boolean". If "hasSmime" has the value true, only messages with "smimeStatus" other than null match the condition. If "hasSmime" has the value false, only messages with "smimeStatus" equal to null match the condition.

* HASSMIME *: "Boolean"。"hassmime"の値がtrueの場合、null以外の "smimestatus"のメッセージのみが条件を一致させます。"hassmime"が値falseを持つ場合、nullと等しい "smimestatus"のメッセージのみが条件を一致させます。

*hasVerifiedSmime*: "Boolean". If "hasVerifiedSmime" has the value true, only messages with "smimeStatus" equal to "signed/verified" or "encrypted+signed/verified" (*) match the condition. If "hasVerifiedSmime" has the value false, only messages with "smimeStatus" not equal to "signed/verified" and not equal to "encrypted+signed/verified" (*) (including the value null) match the condition. Note that use of this attribute is potentially expensive for a JMAP server, as it forces calculation of the "smimeStatus" property value for each message. However, caching of the "smimeStatus" values should ameliorate this cost somewhat.

* HaseVerifiedSmime *: "Boolean"。"haseveverifiedsmime"の値がtrueである場合は、 "smimestatus"と「署名/検証済み」または「暗号化署名/検証」(*)に等しいメッセージのみが条件と一致します。"haseverifiedsmime"がfalseを持つ場合は、 "smimestatus"のメッセージのみが "signed / Verified"に等しく、 "暗号化署名/検証済み"(*)に等しくない(値nullを含む)という条件と一致します。この属性の使用は、各メッセージの「Smimestatus」プロパティ値の計算を強制するため、JMAPサーバーに対して潜在的に高価です。ただし、「Smimestatus」の値のキャッシングは、この費用がやや低調に推移するはずです。

(*) as well as the "smimeStatus" values added by future extensions to this document that are explicitly specified as having similar effect to "signed/verified" as far as "hasVerifiedSmime" calculation is concerned.

(*)「SignedSmimime」の計算に関する限り、「署名/検証済み」と同様の効果があると明示的に指定されているこの文書への将来の拡張によって追加された「SMIMESTATUS」の値は、

*hasVerifiedSmimeAtDelivery*: "Boolean". The "hasVerifiedSmimeAtDelivery" property is handled similarly to the "hasVerifiedSmime" property, but the value of "smimeStatusAtDelivery" is used instead of "smimeStatus" to assess whether a particular message matches the condition.

* HaseVerifiedSmimeatDelivery *: "boolean"。"hasverifiedSmimeatDelivery"プロパティは "haseverifiedsmimimime"プロパティと同様に処理されますが、特定のメッセージが条件と一致するかどうかを評価するには、 "smimestatus"の代わりに "SmimestatusAtdelivery"の値が使用されます。

4.3. Interaction with Email/changes
4.3. 電子メール/変更との対話

Changes to the "smimeVerifiedAt" response property value MUST NOT cause the message to be included in the "updated" argument of the Email/changes response. However, changes to the "smimeStatus", "smimeStatusAtDelivery", and/or "smimeErrors" response properties MUST result in message inclusion in the "updated" argument of the Email/changes response.

"SmimeVeifiedAt"応答プロパティ値の変更は、メッセージをEメール/変更応答の「更新」引数に含めることはできません。ただし、 "smimestatus"、 "smimestatusatDelivery"、および/または "Smimeerrors"の応答プロパティの変更には、Eメール/変更応答の「更新」引数にメッセージを含める必要があります。

5. IANA Considerations
5. IANAの考慮事項
5.1. JMAP Capability Registration for "smimeverify"
5.1. "smimeverify"のJMAP機能登録

IANA has registered the "smimeverify" JMAP capability as follows:

IANAは次のように「SmimeVeirify」JMAP機能を登録しました:

   Capability Name:  urn:ietf:params:jmap:smimeverify
   Specification document:  RFC 9219
   Intended use:  common
   Change Controller:  IETF
   Security and privacy considerations:  RFC 9219, Section 6
        
6. Security Considerations
6. セキュリティに関する考慮事項

Use of the server-side S/MIME signature verification JMAP extension requires the client to trust the server signature verification code, the server configuration, and the server's operational practices to perform S/MIME signature verification, as well as to trust that the channel between the client and the server is integrity protected. (For example, if the server is not configured with some trust anchors, some messages will have the "signed/failed" status instead of "signed/verified".) A malicious or compromised server could return a false verification status to a client. A successful verification could be conveyed to a client for a forged or altered message. A properly signed message could be signaled as having a failed signature verification or no signature at all. In the case of the latter attack, no new attack surface is presented with this extension above what a malicious or compromised server could already do by stripping or tampering with the S/MIME information in the message. In the case of the former attack, client software capable of performing S/MIME signature verification could detect this attack. Local configuration of the client should determine if this client-side verification should occur. For clients without local verification capabilities, such an attack would be difficult to detect.

サーバーサイドS / MIME Signature Verification JMAP拡張子の使用には、クライアントがS / MIMEシグネチャ検証を実行するためのサーバーシグネチャ検証コード、サーバー構成、およびサーバーの運用慣行、およびその間のチャネルを信頼するためにクライアントが必要です。クライアントとサーバーは整合性保護されています。 (たとえば、サーバーが信頼のアンカーで構成されていない場合、一部のメッセージには「署名/検証」の代わりに「署名/失敗」ステータスがあります。)悪意のあるまたは侵害されたサーバーは、クライアントに誤検証ステータスを返すことができます。成功した検証は、鍛造または変更されたメッセージのためにクライアントに伝えられ得る。正しく署名されたメッセージは、失敗した署名検証または署名がまったくないと通知され得る。後者の攻撃の場合、メッセージ内のS / MIME情報でストリップまたは改ざんすることで、悪意のあるまたは侵害されたサーバーがすでに行うことができるものを上回る新しい攻撃サーバーは、新しい攻撃面は上回っていません。前者の攻撃の場合、S / MIME署名検証を実行できるクライアントソフトウェアはこの攻撃を検出する可能性があります。クライアントのローカル構成は、このクライアント側の検証が発生するかどうかを判断する必要があります。ローカル検証機能なしのクライアントの場合、そのような攻撃は検出するのが難しいでしょう。

Integrity protection of the channel between the client and the server is provided by use of TLS, as required by the JMAP specification (see Section 8.1 of [RFC8620]).

クライアントとサーバー間のチャネルの完全性保護は、JMAP仕様で要求されるようにTLSを使用して提供されます([RFC8620]のセクション8.1参照)。

Constant recalculation of the S/MIME signature status can result in a denial-of-service condition. For that reason, it is RECOMMENDED that servers cache results of signature verification for up to 24 hours.

S / MIMEシグネチャ状態の一定の再計算は、サービス拒否状態をもたらす可能性があります。そのため、サーバーは最大24時間の署名検証の結果をキャッシュすることをお勧めします。

7. References
7. 参考文献
7.1. Normative References
7.1. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2119] BRADNER、S、「RFCで使用するためのキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<https://www.rfc-editor.org/info/RFC2119>。

[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, <https://www.rfc-editor.org/info/rfc5280>.

[RFC5280] Cooper、D.、Santesson、S.、Farrell、S.、Boeyen、S.、Housley、R.、およびW.Polk、 "Internet X.509公開鍵インフラストラクチャ証明書および証明書失効リスト(CRL)プロファイル「、RFC 5280、DOI 10.17487 / RFC5280、2008年5月、<https://www.rfc-editor.org/info/rfc5280>。

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8174] Leiba、B.、RFC 2119キーワードの「大文字の曖昧さ」、BCP 14、RFC 8174、DOI 10.17487 / RFC8174、2017年5月、<https://www.rfc-editor.org/info/RFC8174>。

[RFC8550] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Certificate Handling", RFC 8550, DOI 10.17487/RFC8550, April 2019, <https://www.rfc-editor.org/info/rfc8550>.

[RFC8550] Schaad、J.、Ramsdell、B.、およびS. Turner、 "Secure / Multipurpose Internet Mail Extensions(S / MIME / MULTIPURPOSE Internet Mail Extensions)、RFC 8550、DOI 10.17487 / RFC8550、2019年4月、<https://www.rfc-editor.org/info/rfc8550>。

[RFC8551] Schaad, J., Ramsdell, B., and S. Turner, "Secure/ Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification", RFC 8551, DOI 10.17487/RFC8551, April 2019, <https://www.rfc-editor.org/info/rfc8551>.

[RFC8551] Schaad、J.、Ramsdell、B.、およびS。ターナー、「Secure / Multipurpose Internet Mail Extensions(S / MIME / Multipurpose Internet Mail Extensions(S / MIME)バージョン4.0メッセージ仕様」、RFC 8551、DOI 10.17487 / RFC8551、2019年4月、<https://www.rfc-editor.org/info/rfc8551>。

[RFC8620] Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July 2019, <https://www.rfc-editor.org/info/rfc8620>.

[RFC8620] Jenkins、N.およびC. Newman、「JSONメタApplication Protocol(JMAP)」、RFC 8620、DOI 10.17487 / RFC8620、2019年7月、<https://www.rfc-editor.org/info/rfc8620>。

[RFC8621] Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP) for Mail", RFC 8621, DOI 10.17487/RFC8621, August 2019, <https://www.rfc-editor.org/info/rfc8621>.

[RFC8621] Jenkins、N.およびC. NEWMAN、「MailのJSONメタアプリケーションプロトコル(JMAP)」、RFC 8621、DOI 10.17487 / RFC8621、2019年8月、<https://www.rfc-editor.org/info/ RFC8621>。

7.2. Informative References
7.2. 参考引用

[RFC1847] Galvin, J., Murphy, S., Crocker, S., and N. Freed, "Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted", RFC 1847, DOI 10.17487/RFC1847, October 1995, <https://www.rfc-editor.org/info/rfc1847>.

[RFC1847] Galvin、J.、Murphy、S.、Crocker、S.、およびN. freed、「MIME用セキュリティマルチパート:マルチパート/署名済みおよびマルチパート/暗号化」、RFC 1847、DOI 10.17487 / RFC1847、1995年10月、<https://www.rfc-editor.org/info/rfc1847>。

Acknowledgements

謝辞

This document is a product of the JMAP Working Group. Special thank you to Bron Gondwana, Neil Jenkins, Murray Kucherawy, Kirsty Paine, Benjamin Kaduk, Roman Danyliw, Peter Yee, Robert Wilton, Erik Kline, and Menachem Dodge for suggestions, comments, and corrections to this document.

この文書はJMAPワーキンググループの製品です。特別なありがとうございました。

Author's Address

作者の住所

Alexey Melnikov Isode Ltd 14 Castle Mews Hampton, Middlesex TW12 2NP United Kingdom Email: Alexey.Melnikov@isode.com

Alexey Melnikov Isode Ltd 14 Castle Mews Hampton、ミドルセックスTW12 2NPイギリスEメール:alexey.melnikov@isode.com