[要約] RFC 8076は、RELOADプロトコルでの共有リソースの使用方法を定義しており、その目的は、ピア間でリソースの共有と利用を容易にすることです。

Internet Engineering Task Force (IETF)                          A. Knauf
Request for Comments: 8076                               T. Schmidt, Ed.
Category: Standards Track                                    HAW Hamburg
ISSN: 2070-1721                                                  G. Hege
                                                             daviko GmbH
                                                            M. Waehlisch
                                                    link-lab & FU Berlin
                                                              March 2017
        

A Usage for Shared Resources in RELOAD (ShaRe)

RELOAD(ShaRe)での共有リソースの使用法

Abstract

概要

This document defines a REsource LOcation And Discovery (RELOAD) Usage for managing shared write access to RELOAD Resources. Shared Resources in RELOAD (ShaRe) form a basic primitive for enabling various coordination and notification schemes among distributed peers. Access in ShaRe is controlled by a hierarchical trust delegation scheme maintained within an access list. A new USER-CHAIN-ACL access policy allows authorized peers to write a Shared Resource without owning its corresponding certificate. This specification also adds mechanisms to store Resources with a variable name that is useful whenever peer-independent rendezvous processes are required.

このドキュメントでは、RELOADリソースへの共有書き込みアクセスを管理するためのREsource LOcation And Discovery(RELOAD)の使用法を定義します。 RELOAD(ShaRe)の共有リソースは、分散ピア間のさまざまな調整および通知スキームを可能にするための基本的なプリミティブを形成します。 ShaReのアクセスは、アクセスリスト内で維持される階層的な信頼委任スキームによって制御されます。新しいUSER-CHAIN-ACLアクセスポリシーにより、承認されたピアは、対応する証明書を所有せずに共有リソースを書き込むことができます。この仕様は、ピアに依存しないランデブープロセスが必要な場合に常に役立つ変数名でリソースを格納するメカニズムも追加します。

Status of This Memo

本文書の状態

This is an Internet Standards Track document.

これはInternet Standards Trackドキュメントです。

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(Internet Engineering Task Force)の製品です。これは、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 http://www.rfc-editor.org/info/rfc8076.

このドキュメントの現在のステータス、正誤表、およびフィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc8076で入手できます。

Copyright Notice

著作権表示

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

Copyright(c)2017 IETF Trustおよびドキュメントの作成者として識別された人物。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

この文書は、BCP 78およびこの文書の発行日に有効なIETF文書に関するIETFトラストの法的規定(http://trustee.ietf.org/license-info)の対象となります。これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているSimplified BSD Licenseのテキストが含まれている必要があり、Simplified BSD Licenseに記載されているように保証なしで提供されます。

Table of Contents

目次

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  Shared Resources in RELOAD  . . . . . . . . . . . . . . . . .   5
     3.1.  Mechanisms for Isolating Stored Data  . . . . . . . . . .   6
   4.  Access Control List Definition  . . . . . . . . . . . . . . .   7
     4.1.  Overview  . . . . . . . . . . . . . . . . . . . . . . . .   7
     4.2.  Data Structure  . . . . . . . . . . . . . . . . . . . . .   9
   5.  Extension for Variable Resource Names . . . . . . . . . . . .  10
     5.1.  Overview  . . . . . . . . . . . . . . . . . . . . . . . .  10
     5.2.  Data Structure  . . . . . . . . . . . . . . . . . . . . .  11
     5.3.  Overlay Configuration Document Extension  . . . . . . . .  12
   6.  Access Control to Shared Resources  . . . . . . . . . . . . .  13
     6.1.  Granting Write Access . . . . . . . . . . . . . . . . . .  13
     6.2.  Revoking Write Access . . . . . . . . . . . . . . . . . .  14
     6.3.  Validating Write Access through an ACL  . . . . . . . . .  14
     6.4.  Operations of Storing Peers . . . . . . . . . . . . . . .  15
     6.5.  Operations of Accessing Peers . . . . . . . . . . . . . .  16
     6.6.  USER-CHAIN-ACL Access Policy  . . . . . . . . . . . . . .  16
   7.  ACCESS-CONTROL-LIST Kind Definition . . . . . . . . . . . . .  17
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
     8.1.  Resource Exhaustion . . . . . . . . . . . . . . . . . . .  17
     8.2.  Malicious or Misbehaving Storing Peer . . . . . . . . . .  18
     8.3.  Trust Delegation to a Malicious or Misbehaving Peer . . .  18
     8.4.  Privacy Issues  . . . . . . . . . . . . . . . . . . . . .  18
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  19
     9.1.  Access Control Policy . . . . . . . . . . . . . . . . . .  19
     9.2.  Data Kind-ID  . . . . . . . . . . . . . . . . . . . . . .  19
     9.3.  XML Namespace Registration  . . . . . . . . . . . . . . .  19
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  20
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  20
     10.2.  Informative References . . . . . . . . . . . . . . . . .  20
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  21
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  22
        
1. Introduction
1. はじめに

[RFC6940] defines the base protocol for REsource LOcation And Discovery (RELOAD), which allows for application-specific extensions by Usages. The present document defines such a RELOAD Usage for managing shared write access to RELOAD Resources and a mechanism to store Resources with variable names. The Usage for Shared Resources in RELOAD (ShaRe) enables overlay users to share their exclusive write access to specific Resource/Kind pairs with others. Shared Resources form a basic primitive for enabling various coordination and notification schemes among distributed peers. Write permission is controlled by an Access Control List (ACL) Kind that maintains a chain of Authorized Peers for a particular Shared Resource. A newly defined USER-CHAIN-ACL access control policy enables shared write access in RELOAD.

[RFC6940]は、使用法によるアプリケーション固有の拡張を可能にするREsource LOcation And Discovery(RELOAD)の基本プロトコルを定義します。本書では、RELOADリソースへの共有書き込みアクセスを管理するためのこのようなRELOADの使用法と、リソースを変数名で保存するメカニズムを定義しています。 RELOAD(ShaRe)での共有リソースの使用により、オーバーレイユーザーは、特定のリソース/種類のペアへの排他的な書き込みアクセスを他のユーザーと共有できます。共有リソースは、分散ピア間のさまざまな調整および通知スキームを可能にするための基本的なプリミティブを形成します。書き込み権限は、特定の共有リソースの承認されたピアのチェーンを維持するアクセス制御リスト(ACL)の種類によって制御されます。新しく定義されたUSER-CHAIN-ACLアクセス制御ポリシーにより、RELOADで共有書き込みアクセスが可能になります。

The Usage for Shared Resources in RELOAD is designed for jointly coordinated group applications among distributed peers (e.g., third-party registration, see [RFC7904], or distributed conferencing). Of particular interest are rendezvous processes, where a single identifier is linked to multiple, dynamic instances of a distributed cooperative service. Shared write access is based on a trust delegation mechanism that transfers the authorization to write a specific Kind data by storing logical Access Control Lists. An ACL contains the ID of the Kind to be shared and contains trust delegations from one authorized to another (previously unauthorized) user.

RELOADの共有リソースの使用法は、分散ピア間で共同調整されたグループアプリケーション用に設計されています(たとえば、サードパーティの登録、[RFC7904]を参照、または分散会議)。特に興味深いのは、単一の識別子が分散協調サービスの複数の動的インスタンスにリンクされるランデブープロセスです。共有書き込みアクセスは、論理的なアクセス制御リストを格納することにより、特定の種類のデータを書き込むための承認を転送する信頼委任メカニズムに基づいています。 ACLには、共有する種類のIDが含まれ、あるユーザーから別の(以前は無許可であった)ユーザーへの信頼の委任が含まれています。

Shared write access augments the RELOAD security model, which is based on the restriction that peers are only allowed to write resources at a small set of well-defined locations (Resource-IDs) in the overlay. Using the standard access control rules in RELOAD, these locations are bound to the username or Node-ID in the peer's certificate. This document extends the base policies to enable a controlled write access for multiple users to a common Resource-ID.

共有書き込みアクセスは、RELOADセキュリティモデルを強化します。これは、ピアがオーバーレイ内の明確に定義された場所(Resource-ID)の小さなセットでのみリソースを書き込むことができるという制限に基づいています。 RELOADの標準アクセス制御規則を使用して、これらの場所はピアの証明書のユーザー名またはノードIDにバインドされます。このドキュメントでは、基本ポリシーを拡張して、複数のユーザーが共通のResource-IDへの書き込みアクセスを制御できるようにします。

Additionally, this specification defines an optional mechanism to store Resources with a variable Resource Name. It enables the storage of Resources whose name complies to a specific pattern. Definition of the pattern is arbitrary, but it must contain the username of the Resource creator.

さらに、この仕様では、リソースを可変のリソース名で格納するオプションのメカニズムを定義しています。名前が特定のパターンに準拠しているリソースの保存を可能にします。パターンの定義は任意ですが、リソース作成者のユーザー名を含める必要があります。

2. Terminology
2. 用語

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、 [RFC2119]で説明されているように解釈されます。

This document uses the terminology and definitions from the RELOAD base [RFC6940] and [RFC7890], in particular the RELOAD Usage, Resource, and Kind. Additionally, the following terms are used:

このドキュメントでは、RELOADベース[RFC6940]および[RFC7890]の用語と定義、特にRELOADの使用法、リソース、および種類を使用しています。さらに、次の用語が使用されます。

Shared Resource: The term "Shared Resource" in this document defines a RELOAD Resource with its associated Kinds that can be written or overwritten by multiple RELOAD users following the specifications in this document.

共有リソース:このドキュメントの「共有リソース」という用語は、このドキュメントの仕様に従って複数のRELOADユーザーが書き込みまたは上書きできる、関連付けられた種類を持つRELOADリソースを定義します。

Access Control List: The term "Access Control List" in this document defines a logical list of RELOAD users allowed to write a specific RELOAD Resource/Kind pair by following the specifications in this document. The list items are stored as Access Control List Kinds that map trust delegations from user A to user B, where A is allowed to write a Shared Resource and the Access Control List, while B is a user that obtains write access to specified Kinds from A.

アクセス制御リスト:このドキュメントの「アクセス制御リスト」という用語は、このドキュメントの仕様に従って特定のRELOADリソース/種類のペアを書き込むことができるRELOADユーザーの論理リストを定義します。リストアイテムは、ユーザーAからユーザーBへの信頼の委任をマップするアクセス制御リストの種類として保存されます。Aは共有リソースとアクセス制御リストの書き込みを許可され、BはAから指定された種類への書き込みアクセス権を取得するユーザーです。 。

Resource Owner: The term "Resource Owner" in this document defines a RELOAD peer that initially stored a Resource to be shared. The Resource Owner possesses the RELOAD certificate that grants write access to a specific Resource/Kind pair using the RELOAD certificate-based access control policies.

リソース所有者:このドキュメントの「リソース所有者」という用語は、共有するリソースを最初に格納したRELOADピアを定義します。リソース所有者は、RELOAD証明書ベースのアクセス制御ポリシーを使用して、特定のリソース/種類のペアへの書き込みアクセスを許可するRELOAD証明書を所有しています。

Authorized Peer: The term "Authorized Peer" in this document defines a RELOAD peer that was granted write access to a Shared Resource by permission of the Resource Owner or another Authorized Peer.

承認済みピア:このドキュメントの「承認済みピア」という用語は、リソース所有者または別の承認済みピアの許可によって共有リソースへの書き込みアクセスが許可されたRELOADピアを定義します。

3. Shared Resources in RELOAD
3. RELOADの共有リソース

A RELOAD user that owns a certificate for writing at a specific overlay location can maintain one or more RELOAD Kinds that are designated for a non-exclusive write access shared with other RELOAD users. The mechanism to share those Resource/Kind pairs with a group of users consists of two basic steps:

特定のオーバーレイの場所に書き込むための証明書を所有するRELOADユーザーは、他のRELOADユーザーと共有する非排他的書き込みアクセス用に指定された1つ以上のRELOAD種類を維持できます。これらのリソース/種類のペアをユーザーのグループと共有するメカニズムは、2つの基本的な手順で構成されます。

1. Storage of the Resource/Kind pairs to be shared.

1. 共有するリソース/種類のペアのストレージ。

2. Storage of an Access Control List (ACL) associated with those Kinds.

2. それらの種類に関連付けられたアクセス制御リスト(ACL)のストレージ。

ACLs are created by the Resource Owner and contain ACL items, each delegating the permission of writing the shared Kind to a specific user called the "Authorized Peer". For each shared Kind data, its Resource owner stores a root item that initiates an Access Control List. Trust delegation to the Authorized Peer can include the right to further delegate the write permission, enabling a tree of trust delegations with the Resource Owner as trust anchor at its root.

ACLはリソース所有者によって作成され、ACLアイテムが含まれます。各ACLは、「承認されたピア」と呼ばれる特定のユーザーに共有Kindを書き込む権限を委任します。共有されている種類のデータごとに、そのリソース所有者は、アクセス制御リストを開始するルートアイテムを格納します。承認されたピアへの信頼の委任には、書き込み権限をさらに委任する権限を含めることができ、リソース所有者をルートの信頼アンカーとして持つ信頼の委任のツリーを有効にすることができます。

The Resource/Kind pair to be shared can be any RELOAD Kind that complies to the following specifications:

共有するリソース/種類のペアは、次の仕様に準拠する任意のRELOADの種類にすることができます。

Isolated Data Storage: To prevent concurrent writing from race conditions, each data item stored within a Shared Resource SHALL be exclusively maintained by the RELOAD user who created it. Hence, Usages that allow the storage of Shared Resources are REQUIRED to use either the array or dictionary data model and apply additional mechanisms for isolating data as described in Section 3.1.

分離されたデータストレージ:競合状態からの同時書き込みを防ぐために、共有リソース内に保存された各データ項目は、それを作成したRELOADユーザーによって排他的に維持される必要があります。したがって、セクション3.1で説明されているように、共有リソースのストレージを許可する使用法では、配列または辞書データモデルを使用し、データを分離するための追加のメカニズムを適用する必要があります。

Access Control Policy: To ensure write access to Shared Resource by Authorized Peers, each Usage MUST use the USER-CHAIN-ACL access policy as described in Section 6.6.

アクセス制御ポリシー:承認されたピアによる共有リソースへの書き込みアクセスを保証するには、セクション6.6で説明されているように、各使用法でUSER-CHAIN-ACLアクセスポリシーを使用する必要があります。

Resource Name Extension: To enable Shared Resources to be stored using a variable resource name, this document defines an optional ResourceNameExtension structure. It contains the Resource Name of the Kind data to be stored and allows any receiver of a shared data to validate whether the Resource Name hashes to the Resource-ID. The ResourceNameExtension is made optional by configuration. The ResourceNameExtension field is only present in the Kind data structure when configured in the corresponding kind-block of the overlay configuration document (for more details, see Section 5.3). If the configuration allows variable resource names, a Kind using the USER-CHAIN-ACL policy MUST use the ResourceNameExtension as the initial field within the Kind data structure definition. Otherwise, the Kind data structure does not contain the ResourceNameExtension structure.

リソース名拡張:可変リソース名を使用して共有リソースを格納できるようにするために、このドキュメントではオプションのResourceNameExtension構造を定義しています。これには、保存される種類データのリソース名が含まれ、共有データの受信者は、リソース名がリソースIDにハッシュするかどうかを検証できます。 ResourceNameExtensionは、構成によってオプションになります。 ResourceNameExtensionフィールドは、オーバーレイ構成ドキュメントの対応する種類ブロックで構成されている場合、Kindデータ構造にのみ存在します(詳細については、セクション5.3を参照してください)。構成で可変リ​​ソース名が許可されている場合、USER-CHAIN-ACLポリシーを使用するKindは、Kindデータ構造定義内の初期フィールドとしてResourceNameExtensionを使用する必要があります。それ以外の場合、Kindデータ構造にはResourceNameExtension構造は含まれません。

3.1. Mechanisms for Isolating Stored Data
3.1. 保存されたデータを分離するメカニズム

This section defines mechanisms to avoid race conditions while concurrently writing an array or dictionary of a Shared Resource.

このセクションでは、共有リソースの配列または辞書を同時に書き込みながら、競合状態を回避するメカニズムを定義します。

If a dictionary is used in the Shared Resource, the dictionary key MUST be the Node-ID of the certificate that will be used to sign the stored data. Thus, data access is bound to the unique ID holder, and write concurrency does not occur.

共有リソースでディクショナリが使用されている場合、ディクショナリキーは、格納されたデータの署名に使用される証明書のノードIDである必要があります。したがって、データアクセスは一意のIDホルダーにバインドされ、書き込みの同時実行は発生しません。

If the data model of the Shared Resource is an array, each Authorized Peer that chooses to write data SHALL obtain its exclusive range of the array indices. The following algorithm will generate an array indexing scheme that avoids collisions:

共有リソースのデータモデルが配列の場合、データの書き込みを選択する各承認済みピアは、配列インデックスの排他的な範囲を取得する必要があります。次のアルゴリズムは、衝突を回避する配列インデックススキーマを生成します。

1. Obtain the Node-ID of the certificate that will be used to sign the stored data.

1. 保存されたデータの署名に使用される証明書のノードIDを取得します。

2. Take the least significant 24 bits of that Node-ID to prefix the array index.

2. そのノードIDの最下位24ビットを取得して、配列のインデックスの前に付けます。

3. Append an 8-bit individual index value to those 24 bits of the Node-ID.

3. Node-IDの24ビットに8ビットの個別のインデックス値を追加します。

The resulting 32-bit long integer MUST be used as the index for storing an array entry in a Shared Resource. The 24 bits of the Node-ID serve as a collision-resistant identifier. The 8-bit individual index remains under the control of a single Peer and can be incremented individually for further array entries. In total, each Peer can generate 256 distinct entries for application-specific use.

結果の32ビット長整数は、共有リソースに配列エントリを格納するためのインデックスとして使用する必要があります。 Node-IDの24ビットは、衝突に強い識別子として機能します。 8ビットの個別のインデックスは、単一のピアの制御下にあり、さらに配列エントリを追加するために個別にインクリメントできます。合計すると、各ピアは、アプリケーション固有の使用のために256の異なるエントリを生成できます。

The mechanism to create the array index inherits collision-resistance from the overlay hash function in use (e.g., SHA-1). It is designed to work reliably for small sizes of groups as applicable to resource sharing. In the rare event of a collision, the Storing Peer will refuse to (over-)write the requested array index and protect indexing integrity as defined in Section 6.1. A Peer could rejoin the overlay with a different Node-ID in such a case.

配列インデックスを作成するメカニズムは、使用中のオーバーレイハッシュ関数(SHA-1など)からの衝突耐性を継承しています。リソース共有に適用できるように、小規模なグループで確実に機能するように設計されています。まれに衝突が発生した場合、Storing Peerは、要求された配列インデックスの(オーバー)書き込みを拒否し、セクション6.1で定義されているようにインデックスの整合性を保護します。このような場合、ピアは別のノードIDでオーバーレイに再参加できます。

4. Access Control List Definition
4. アクセス制御リスト定義
4.1. Overview
4.1. 概観

An Access Control List (ACL) is a (self-managed) Shared Resource that contains a list of AccessControlListItem structures as defined in Section 4.2. Each entry delegates write access for a specific Kind data to a single RELOAD user. An ACL enables the RELOAD user who is authorized to write a specific Resource-ID to delegate his exclusive write access to a specific Kind to further users of the same RELOAD overlay. Therefore, each Access Control List data structure carries the information about who obtains write access, the Kind-ID of the Resource to be shared, and whether delegation includes write access to the ACL itself. The latter condition grants the right to delegate write access further for the Authorized Peer. Access Control Lists are stored at the same overlay location as the Shared Resource and use the RELOAD array data model. They are initially created by the Resource Owner.

アクセス制御リスト(ACL)は、セクション4.2で定義されているAccessControlListItem構造体のリストを含む(自己管理の)共有リソースです。各エントリは、特定の種類のデータへの書き込みアクセスを単一のRELOADユーザーに委任します。 ACLを使用すると、特定のResource-IDへの書き込みが許可されているRELOADユーザーが、特定の種類への排他的な書き込みアクセスを同じRELOADオーバーレイの他のユーザーに委任できます。したがって、各アクセス制御リストのデータ構造には、誰が書き込みアクセスを取得するか、共有するリソースの種類ID、委任にACL自体への書き込みアクセスが含まれているかどうかに関する情報が含まれます。後者の条件は、許可されたピアに書き込みアクセスをさらに委任する権利を付与します。アクセス制御リストは、共有リソースと同じオーバーレイの場所に格納され、RELOAD配列データモデルを使用します。これらは、最初はリソース所有者によって作成されます。

Figure 1 shows an example of an Access Control List. We omit the res_name_ext field to simplify illustration. The array entry at index 0x123abc01 displays the initial creation of an ACL for a Shared Resource of Kind-ID 1234 at the same Resource-ID. It represents the root item of the trust delegation tree for this shared RELOAD Kind. The root entry MUST contain the username of the Resource owner in the "to_user" field and can only be written by the owner of the public key certificate associated with this Resource-ID. The allow_delegation (ad) flag for a root ACL item is set to 1 by default. The array index is generated by using the mechanism for isolating stored data as described in Section 3.1. Hence, the most significant 24 bits of the array index (0x123abc) are the least significant 24 bits of the Node-ID of the Resource Owner.

図1は、アクセス制御リストの例を示しています。図を簡略化するために、res_name_extフィールドは省略しています。インデックス0x123abc01の配列エントリは、同じResource-IDにKind-ID 1234の共有リソースのACLの最初の作成を表示します。これは、この共有RELOAD Kindの信頼委任ツリーのルート項目を表します。ルートエントリの「to_user」フィールドにはリソース所有者のユーザー名が含まれている必要があり、このリソースIDに関連付けられている公開鍵証明書の所有者のみが書き込むことができます。ルートACLアイテムのallow_delegation(ad)フラグは、デフォルトで1に設定されています。配列インデックスは、セクション3.1で説明されているように、格納されたデータを分離するメカニズムを使用して生成されます。したがって、配列インデックスの最上位24ビット(0x123abc)は、リソース所有者のノードIDの最下位24ビットです。

The array item at index 0x123abc02 represents the first trust delegation to an Authorized Peer that is thus permitted to write to the Shared Resource of Kind-ID 1234. Additionally, the Authorized peer Alice is also granted write access to the ACL as indicated by the allow_delegation flag (ad) set to 1. This configuration authorizes Alice to store further trust delegations to the Shared Resource, i.e., add items to the ACL. On the contrary, index 0x456def01 illustrates trust delegation for Kind-ID 1234, in which the Authorized Peer Bob is not allowed to grant access to further peers (ad = 0). Each Authorized Peer signs its ACL items by using its own signer identity along with its own private key. This allows other peers to validate the origin of an ACL item and makes ownership transparent.

インデックス0x123abc02の配列項目は、許可されたピアへの最初の信頼の委任を表します。これにより、種類ID 1234の共有リソースへの書き込みが許可されます。さらに、許可されたピアアリスには、allow_delegationで示されるACLへの書き込みアクセス権も付与されますフラグ(ad)を1に設定します。この構成では、Aliceが共有リソースへの信頼の委任をさらに格納することを許可します。つまり、アイテムをACLに追加します。逆に、インデックス0x456def01は、Kind-ID 1234の信頼の委任を示しています。この場合、承認されたピアボブは、他のピア(ad = 0)へのアクセスを許可されません。各承認済みピアは、独自の署名者IDと独自の秘密鍵を使用して、ACLアイテムに署名します。これにより、他のピアがACLアイテムの発信元を検証し、所有権を透過的にすることができます。

To manage Shared Resource access of multiple Kinds at a single location, the Resource Owner can create new ACL entries that refer to another Kind-ID as shown in array entry index 0x123abc03. Note that overwriting existing items in an Access Control List with a change in the Kind-ID revokes all trust delegations in the corresponding subtree (see Section 6.2). Authorized Peers are only enabled to overwrite existing ACL item they own. The Resource Owner is allowed to overwrite any existing ACL item, but should be aware of its consequences on the trust delegation chain.

1つの場所で複数の種類の共有リソースアクセスを管理するために、リソース所有者は、配列エントリインデックス0x123abc03に示すように、別の種類IDを参照する新しいACLエントリを作成できます。アクセス制御リストの既存の項目を種類IDの変更で上書きすると、対応するサブツリーの信頼の委任がすべて取り消されることに注意してください(セクション6.2を参照)。承認されたピアは、所有する既存のACLアイテムを上書きすることのみが可能です。リソース所有者は既存のACL項目を上書きすることができますが、信頼の委任チェーンへの影響に注意する必要があります。

         +------------------------------------------------------+
         |                Access Control List                   |
         +-----------+------------------------------+-----------+
         |  #Index   |       Array Entries          | signed by |
         +-----------+------------------------------+-----------+
         | 123abc01  | to_user:Owner Kind:1234 ad:1 |   Owner   |
         +-----------+------------------------------+-----------+
         | 123abc02  | to_user:Alice Kind:1234 ad:1 |   Owner   |
         +-----------+------------------------------+-----------+
         | 123abc03  | to_user:Owner Kind:4321 ad:1 |   Owner   |
         +-----------+------------------------------+-----------+
         | 123abc04  | to_user:Carol Kind:4321 ad:0 |   Owner   |
         +-----------+------------------------------+-----------+
         |    ...    |           ...                |    ...    |
         +-----------+------------------------------+-----------+
         | 456def01  | to_user:Bob   Kind:1234 ad:0 |   Alice   |
         +-----------+------------------------------+-----------+
         |    ...    |           ...                |    ...    |
         +-----------+------------------------------+-----------+
        

Figure 1: Simplified Example of an Access Control List, Including Entries for Two Different Kind-IDs and Varying Delegation (AD) Configurations

図1:2つの異なる種類IDと可変委任(AD)構成のエントリを含む、アクセス制御リストの簡略化された例

Implementors of ShaRe should be aware that the trust delegation in an Access Control List need not be loop free. Self-contained circular trust delegation from A to B and B to A are syntactically possible, even though not very meaningful.

ShaReの実装者は、アクセス制御リストの信頼の委任がループフリーである必要はないことを認識する必要があります。 AからBおよびBからAへの自己完結型の循環信頼委任は、あまり意味がなくても構文的に可能です。

4.2. Data Structure
4.2. データ構造

The Kind data structure for the Access Control List is defined as follows:

アクセス制御リストの種類データ構造は、次のように定義されています。

   struct {
        /* res_name_ext is optional, see documentation */
        ResourceNameExtension  res_name_ext;
        opaque                 to_user<0..2^16-1>;
        KindId                 kind;
        Boolean                allow_delegation;
   } AccessControlListItem;
        

The AccessControlListItem structure is composed of:

AccessControlListItem構造は次のもので構成されます。

res_name_ext: This optional field contains the Resource Name of a ResourceNameExtension (see Section 5.2) to be used by a Shared Resource with a variable resource name. This name is used by the storing peer for validating, whether a variable resources name matches one of the predefined naming pattern from the configuration document for this Kind. The presence of this field is bound to a variable resource name element in the corresponding kind-block of the configuration document whose "enable" attribute is set to true (see Section 5.3). Otherwise, if the "enable" attribute is false, the res_name_ext field SHALL NOT be present in the Kind data structure.

res_name_ext:このオプションのフィールドには、可変リソース名を持つ共有リソースによって使用されるResourceNameExtension(セクション5.2を参照)のリソース名が含まれます。この名前は、変数リソース名がこの種類の構成ドキュメントの事前定義された命名パターンの1つと一致するかどうかを検証するために、保存ピアによって使用されます。このフィールドの存在は、 "enable"属性がtrueに設定されている構成ドキュメントの対応する種類ブロックの変数リソース名要素にバインドされます(セクション5.3を参照)。それ以外の場合、「enable」属性がfalseの場合、res_name_extフィールドはKindデータ構造に存在しないものとします(SHALL NOT)。

to_user: This field contains the username of the RELOAD peer that obtains write permission to the Shared Resource.

to_user:このフィールドには、共有リソースへの書き込み権限を取得するRELOADピアのユーザー名が含まれます。

kind: This field contains the Kind-ID of the Shared Resource.

kind:このフィールドには、共有リソースの種類IDが含まれます。

allow_delegation: If true, this Boolean flag indicates that the Authorized Peer in the 'to_user' field is allowed to add additional entries to the ACL for the specified Kind-ID.

allow_delegation:trueの場合、このブールフラグは、「to_user」フィールドの承認されたピアが、指定されたKind-IDのACLにエントリを追加できることを示します。

5. Extension for Variable Resource Names
5. 変数リソース名の拡張
5.1. Overview
5.1. 概観

In certain use cases, such as conferencing, it is desirable to increase the flexibility of a peer in using Resource Names beyond those defined by the username or Node-ID fields in its certificate. For this purpose, this document presents the concept for variable Resources Names that enables providers of RELOAD instances to define relaxed naming schemes for overlay Resources.

会議などの特定の使用例では、証明書のユーザー名またはノードIDフィールドで定義されているものを超えてリソース名を使用する場合のピアの柔軟性を高めることが望ましいです。この目的のために、このドキュメントでは、RELOADインスタンスのプロバイダーがオーバーレイリソースの緩和された命名スキームを定義できるようにする変数リソース名の概念を示します。

Each RELOAD node uses a certificate to identify itself using its username (or Node-ID) while storing data under a specific Resource-ID (see Section 7.3 in [RFC6940]). The specifications in this document scheme adhere to this paradigm, but enable a RELOAD peer to store values of Resource Names that are derived from the username in its certificate. This is done by using a Resource Name with a variable substring that still matches the username in the certificate using a pattern defined in the overlay configuration document. Thus, despite being variable, an allowable Resource Name remains tied to the Owner's certificate. A sample pattern might be formed as follows:

各RELOADノードは、証明書を使用して、ユーザー名(またはノードID)で自身を識別し、特定のリソースIDでデータを保存します([RFC6940]のセクション7.3を参照)。このドキュメントスキームの仕様はこのパラダイムに準拠していますが、RELOADピアがユーザー名から派生したリソース名の値を証明書に格納できるようにします。これは、オーバーレイ構成文書で定義されたパターンを使用して、証明書内のユーザー名と依然として一致する可変サブストリングを持つリソース名を使用して行われます。したがって、可変であっても、許可されるリソース名は所有者の証明書に関連付けられたままです。サンプルパターンは次のように形成されます。

Example Pattern: .*-conf-$USER@$DOMAIN When defining the pattern, care must be taken to avoid conflicts arising from two usernames of which one is a substring of the other. In such cases, the holder of the shorter name could threaten to block the resources of the longer-named peer by choosing the variable part of a Resource Name to contain the entire longer username. For example, a "*$USER" pattern would allow user EVE to define a resource with name "STEVE" and to block the resource name for user STEVE through this. This problem can easily be mitigated by delimiting the variable part of the pattern from the username part by some fixed string, that by convention is not part of a username (e.g., the "-conf-" in the above Example).

パターンの例:。*-conf- $ USER @ $ DOMAINパターンを定義する場合、一方が他方のサブストリングである2つのユーザー名から生じる競合を回避するように注意する必要があります。そのような場合、短い名前の保持者は、長いユーザー名全体を含むようにリソース名の可変部分を選択することにより、長い名前のピアのリソースをブロックすると脅迫する可能性があります。たとえば、「* $ USER」パターンを使用すると、ユーザーEVEが「STEVE」という名前のリソースを定義し、これを介してユーザーSTEVEのリソース名をブロックできます。この問題は、パターンの可変部分をユーザー名の部分から固定文字列で区切ることで簡単に軽減できます。これは、慣例によりユーザー名の一部ではありません(たとえば、上記の例の「-conf-」)。

5.2. Data Structure
5.2. データ構造

This section defines the optional ResourceNameExtension structure for every Kind that uses the USER-CHAIN-ACL access control policy.

このセクションでは、USER-CHAIN-ACLアクセス制御ポリシーを使用するすべての種類のオプションのResourceNameExtension構造を定義します。

   enum { pattern(1), (255)} ResourceNameType;
        
   struct {
     ResourceNameType type;
     uint16           length;
        
     select(type) {
         case pattern:
           opaque     resource_name<0..2^16-1>;
        
         /* Types can be extended */
     };
   } ResourceNameExtension;
        

The content of the ResourceNameExtension consists of:

ResourceNameExtensionのコンテンツは、次のもので構成されます。

length: This field contains the length of the remaining data structure. It is only used to allow for further extensions to this data structure.

length:このフィールドには、残りのデータ構造の長さが含まれます。これは、このデータ構造をさらに拡張するためにのみ使用されます。

The content of the rest of the data structure depends of the ResourceNameType. Currently, the only defined type is "pattern".

残りのデータ構造の内容は、ResourceNameTypeによって異なります。現在、定義されている唯一のタイプは「パターン」です。

If the type is "pattern", then the following data structure contains an opaque <0..2^16-1> field containing the Resource Name of the Kind being stored. The type "pattern" further indicates that the Resource Name MUST match to one of the variable resource name patterns defined for this Kind in the configuration document.

タイプが「パターン」の場合、次のデータ構造には、保存されている種類のリソース名を含む不透明な<0..2 ^ 16-1>フィールドが含まれます。タイプ「パターン」はさらに、リソース名が構成ドキュメントでこの種類に対して定義された可変リソース名パターンの1つと一致する必要があることを示します。

The ResourceNameType enum and the ResourceNameExtension structure can be extended by further Usages to define other naming schemes.

ResourceNameType列挙およびResourceNameExtension構造は、他の使用法によって拡張して、他の命名方式を定義できます。

5.3. Overlay Configuration Document Extension
5.3. オーバーレイ構成ドキュメント拡張

This section extends the overlay configuration document by defining new elements for patterns relating resource names to usernames. It is noteworthy that additional constraints on the syntax and semantic of names can apply according to specific Usages. For example, Address of Record (AOR) syntax restrictions apply when using P2PSIP [RFC7904], while a more general naming is feasible in plain RELOAD.

このセクションでは、リソース名をユーザー名に関連付けるパターンの新しい要素を定義して、オーバーレイ構成ドキュメントを拡張します。名前の構文とセマンティクスに対する追加の制約が、特定の使用法に従って適用できることは注目に値します。たとえば、P2PSIP [RFC7904]を使用する場合、レコードのアドレス(AOR)構文の制限が適用されますが、プレーンなRELOADではより一般的な命名が可能です。

The <variable-resource-names> element serves as a container for one or multiple <pattern> sub-elements. It is an additional parameter within the kind-block and has a boolean "enable" attribute that indicates, if true, that the overlay provider allows variable resource names for this Kind. The default value of the "enable" attribute is "false". In the absence of a <variable-resource-names> element for a Kind using the USER-CHAIN-ACL access policy (see Section 6.6), implementors MUST assume this default value.

<variable-resource-names>要素は、1つまたは複数の<pattern>サブ要素のコンテナーとして機能します。これは、kind-block内の追加パラメーターであり、trueの場合、オーバーレイプロバイダーがこの種類の変数リソース名を許可することを示すブール「enable」属性を持っています。 「enable」属性のデフォルト値は「false」です。 USER-CHAIN-ACLアクセスポリシー(セクション6.6を参照)を使用するKindの<variable-resource-names>要素がない場合、実装者はこのデフォルト値を想定する必要があります。

A <pattern> element MUST be present if the "enabled" attribute of its parent element is set to true. Each <pattern> element defines a pattern for constructing extended resource names for a single Kind. It is of type xsd:string and interpreted as a regular expression according to "POSIX Extended Regular Expression" (see the specifications in [IEEE-Posix]). In this regular expression, $USER and $DOMAIN are used as variables for the corresponding parts of the string in the certificate username field (with $USER preceding and $DOMAIN succeeding the '@'). Both variables MUST be present in any given pattern definition. Furthermore, variable parts in <pattern> elements defined in the overlay configuration document MUST remain syntactically separated from the username part (e.g., by a dedicated delimiter) to prevent collisions with other names of other users. If no pattern is defined for a Kind, if the "enable" attribute is false, or if the regular expression does not meet the requirements specified in this section, the allowable Resource Names are restricted to the username of the signer for Shared Resource.

<pattern>要素は、その親要素の "enabled"属性がtrueに設定されている場合に存在する必要があります。各<pattern>要素は、単一の種類の拡張リソース名を作成するためのパターンを定義します。タイプはxsd:stringであり、「POSIX拡張正規表現」に従って正規表現として解釈されます([IEEE-Posix]の仕様を参照)。この正規表現では、$ USERと$ DOMAINは、証明書のユーザー名フィールドの文字列の対応する部分の変数として使用されます($ USERが先行し、$ DOMAINが '@'の後に続きます)。両方の変数は、特定のパターン定義に存在している必要があります。さらに、オーバーレイ構成ドキュメントで定義された<pattern>要素の変数部分は、他のユーザーの他の名前との衝突を防ぐために、構文的にユーザー名部分から分離する必要があります(専用の区切り文字など)。 Kindにパターンが定義されていない場合、「enable」属性がfalseの場合、または正規表現がこのセクションで指定された要件を満たしていない場合、許可されるリソース名は共有リソースの署名者のユーザー名に制限されます。

The RELAX NG Grammar for the Variable Resource Names Extension reads:

可変リソース名拡張のRELAX NG文法は次のとおりです。

# VARIABLE RESOURCE URN SUB-NAMESPACE

#変数リソースURNサブネームスペース

   namespace share = "urn:ietf:params:xml:ns:p2p:config-base:share"
        

# VARIABLE RESOURCE NAMES ELEMENT

#可変リソース名要素

   kind-parameter &= element share:variable-resource-names {
        

attribute enable { xsd:boolean },

属性enable {xsd:boolean}、

# PATTERN ELEMENT

#パターン要素

       element share:pattern { xsd:string }*
   }?
        

Whitespace and case processing follows the rules of [OASIS.relax_ng] and XML Schema Datatypes [W3C.REC-xmlschema-2-20041028].

空白と大文字と小文字の処理は、[OASIS.relax_ng]とXMLスキーマデータタイプ[W3C.REC-xmlschema-2-20041028]のルールに従います。

6. Access Control to Shared Resources
6. 共有リソースへのアクセス制御
6.1. Granting Write Access
6.1. 書き込みアクセスの許可

Write access to a Kind that is intended to be shared with other RELOAD users can be initiated solely by the Resource Owner. A Resource Owner can share RELOAD Kinds by using the following procedure:

他のRELOADユーザーと共有することを目的とした種類への書き込みアクセスは、リソース所有者のみが開始できます。リソース所有者は、次の手順を使用してRELOADの種類を共有できます。

o The Resource Owner stores an ACL root item at the Resource-ID of the Shared Resource. The root item contains the ResourceNameExtension field (see Section 5.2), the username of the Resource Owner and Kind-ID of the Shared Resource. The allow_delegation flag is set to 1. The index of array data structure MUST be generated as described in Section 3.1.

o リソース所有者は、共有リソースのResource-IDにACLルートアイテムを格納します。ルート項目には、ResourceNameExtensionフィールド(セクション5.2を参照)、リソース所有者のユーザー名、および共有リソースのKind-IDが含まれます。 allow_delegationフラグは1に設定されます。配列データ構造のインデックスは、セクション3.1で説明されているように生成する必要があります。

o Further ACL items for this Kind-ID stored by the Resource Owner MAY delegate write access to Authorized Peers. These ACL items contain the same resource name extension field, the username of the Authorized Peer, and the Kind-ID of the Shared Resource. Optionally, the Resource Owner sets the "ad" to 1 (the default equals 0) to enable the Authorized Peer to further delegate write access. For each succeeding ACL item, the Resource Owner increments its individual index value by one (see Section 3.1) so that items can be stored in the numerical order of the array index starting with the index of the root item.

o リソース所有者によって保存されたこのKind-IDの追加のACLアイテムは、許可されたピアに書き込みアクセスを委任してもよい(MAY)。これらのACL項目には、同じリソース名拡張フィールド、承認済みピアのユーザー名、および共有リソースの種類IDが含まれています。オプションで、リソース所有者は「ad」を1(デフォルトは0)に設定して、承認されたピアが書き込みアクセスをさらに委任できるようにします。後続の各ACLアイテムについて、リソースオーナーは個々のインデックス値を1つ増やし(セクション3.1を参照)、ルートアイテムのインデックスから始まる配列インデックスの番号順にアイテムを格納できます。

An Authorized Peer with delegation allowance ("ad"=1) can extend the access to an existing Shared Resource as follows:

委任許可( "ad" = 1)を持つ承認されたピアは、既存の共有リソースへのアクセスを次のように拡張できます。

o An Authorized Peer can store additional ACL items at the Resource-ID of the Shared Resource. These ACL items contain the resource name extension field, the username of the newly Authorized Peer, and the Kind-ID of the Shared Resource. Optionally, the "ad" flag is set to 1 for allowing the newly Authorized Peer to further delegate write access. The array index MUST be generated as described in Section 3.1. Each succeeding ACL item can be stored in the numerical order of the array index.

o 承認されたピアは、共有リソースのResource-IDに追加のACLアイテムを保存できます。これらのACL項目には、リソース名拡張フィールド、新しく承認されたピアのユーザー名、および共有リソースの種類IDが含まれています。オプションで、新しく承認されたピアが書き込みアクセスをさらに委任できるように、「ad」フラグを1に設定します。配列インデックスは、セクション3.1の説明に従って生成する必要があります。後続の各ACLアイテムは、配列インデックスの番号順に格納できます。

A store request by an Authorized Peer that attempts to overwrite any ACL item signed by another Peer is unauthorized and causes an Error_Forbidden response from the Storing Peer. Such access conflicts could be caused by an array index collision. However, the probability of a collision of two or more identical array indices will be negligibly low using the mechanism for isolating stored data (see Section 3.1).

承認されたピアが別のピアによって署名されたACLアイテムを上書きしようとするストア要求は無許可であり、ストアピアからのError_Forbidden応答を引き起こします。このようなアクセスの競合は、配列のインデックスの衝突によって引き起こされる可能性があります。ただし、2つ以上の同一の配列インデックスの衝突の確率は、保存されたデータを分離するメカニズムを使用すると無視できるほど低くなります(セクション3.1を参照)。

6.2. Revoking Write Access
6.2. 書き込みアクセスの取り消し

Write permissions are revoked by storing a nonexistent value (see [RFC6940], Section 7.2.1) at the corresponding item of the Access Control List. Revoking a permission automatically invalidates all delegations performed by that user including all subsequent delegations. This allows the invalidation of entire subtrees of the delegations tree with only a single operation. Overwriting the root item with a nonexistent value of an Access List invalidates the entire delegations tree.

アクセス制御リストの対応する項目に存在しない値([RFC6940]、セクション7.2.1を参照)を格納することにより、書き込み権限が取り消されます。権限を取り消すと、後続のすべての委任を含む、そのユーザーが実行したすべての委任が自動的に無効になります。これにより、1回の操作で委任ツリーのサブツリー全体を無効化できます。アクセスリストの存在しない値でルートアイテムを上書きすると、委任ツリー全体が無効になります。

An existing ACL item MUST only be overwritten by the user who initially stored the corresponding entry, or by the Resource Owner that is allowed to overwrite all ACL items for revoking write access.

既存のACLアイテムは、対応するエントリを最初に保存したユーザー、または書き込みアクセスを取り消すためにすべてのACLアイテムを上書きすることを許可されているリソース所有者によってのみ上書きされる必要があります。

To protect the privacy of the users, the Resource Owner SHOULD overwrite all subtrees that have been invalidated.

ユーザーのプライバシーを保護するために、リソース所有者は無効にされたすべてのサブツリーを上書きする必要があります。

6.3. Validating Write Access through an ACL
6.3. ACLによる書き込みアクセスの検証

Access Control Lists are used to transparently validate authorization of peers for writing a data value at a Shared Resource. Thereby, it is assumed that the validating peer is in possession of the complete and most recent ACL for a specific Resource/Kind pair. The corresponding procedure consists of recursively traversing the trust delegation tree with strings compared as binary objects. It proceeds as follows: 1. Obtain the username of the certificate used for signing the data stored at the Shared Resource. This is the user who requested the write operation.

アクセス制御リストは、共有リソースでデータ値を書き込むためのピアの承認を透過的に検証するために使用されます。これにより、検証ピアは、特定のリソース/種類のペアに対する完全かつ最新のACLを所有していると想定されます。対応する手順は、バイナリオブジェクトとして比較された文字列を使用して、信頼委任ツリーを再帰的にトラバースすることで構成されます。これは次のように進行します。1.共有リソースに保存されているデータの署名に使用される証明書のユーザー名を取得します。これは、書き込み操作を要求したユーザーです。

2. Validate that an item of the corresponding ACL (i.e., for this Resource/Kind pair) contains a "to_user" field whose value equals the username obtained in step 1. If the Shared Resource under examination is an Access Control List Kind, further validate if the "ad" flag is set to 1.

2. 対応するACLの項目(つまり、このリソース/種類のペア)に「to_user」フィールドが含まれ、その値がステップ1で取得したユーザー名と等しいことを検証します。検査中の共有リソースがアクセス制御リストの種類である場合は、さらに「ad」フラグは1に設定されます。

3. Select the username of the certificate that was used to sign the ACL item obtained in the previous step.

3. 前の手順で取得したACLアイテムの署名に使用された証明書のユーザー名を選択します。

4. Validate that an item of the corresponding ACL contains a "to_user" field whose value equals the username obtained in step 3. Additionally, validate that the "ad" flag is set to 1.

4. 対応するACLの項目に、ステップ3で取得したユーザー名と等しい値の「to_user」フィールドが含まれていることを確認します。さらに、「ad」フラグが1に設定されていることを確認します。

5. Repeat steps 3 and 4 until the "to_user" value is equal to the username of the signer of the ACL in the selected item. This final ACL item is expected to be the root item of this ACL, which MUST be further validated by verifying that the root item was signed by the owner of the ACL Resource.

5. 「to_user」の値が、選択したアイテムのACLの署名者のユーザー名と等しくなるまで、手順3と4を繰り返します。この最後のACLアイテムは、このACLのルートアイテムであると予想されます。これは、ルートアイテムがACLリソースの所有者によって署名されていることを確認することによって、さらに検証する必要があります。

The trust delegation chain is valid if and only if all verification steps succeed. In this case, the creator of the data value of the Shared Resource is an Authorized Peer.

信頼の委任チェーンは、すべての検証手順が成功した場合にのみ有効です。この場合、共有リソースのデータ値の作成者は承認されたピアです。

Note that the ACL validation procedure can be omitted whenever the creator of data at a Shared Resource is the Resource Owner itself. The latter can be verified by its public key certificate as defined in Section 6.6.

共有リソースでのデータの作成者がリソース所有者自身である場合は常に、ACL検証手順を省略できることに注意してください。後者は、セクション6.6で定義されている公開鍵証明書によって検証できます。

6.4. Operations of Storing Peers
6.4. ピアの保存の操作

Storing peers, at which Shared Resource and ACL are physically stored, are responsible for controlling storage attempts to a Shared Resource and its corresponding Access Control List. To assert the USER-CHAIN-ACL access policy (see Section 6.6), a storing peer MUST perform the access validation procedure described in Section 6.3 on any incoming store request using the most recent Access Control List for every Kind that uses the USER-CHAIN-ACL policy. It SHALL further ensure that only the Resource Owner stores new ACL root items for Shared Resources.

共有リソースとACLが物理的に格納される格納ピアは、共有リソースとそれに対応するアクセス制御リストへのストレージ試行を制御する責任があります。 USER-CHAIN-ACLアクセスポリシー(セクション6.6を参照)をアサートするには、保存ピアは、USER-CHAINを使用するすべての種類の最新のアクセス制御リストを使用して、着信ストア要求に対してセクション6.3で説明されているアクセス検証手順を実行する必要があります-ACLポリシー。さらに、リソース所有者のみが共有リソースの新しいACLルート項目を保存することを保証する必要があります。

6.5. Operations of Accessing Peers
6.5. ピアにアクセスする操作

Accessing peers, i.e., peers that fetch a Shared Resource, can validate that the originator of a Shared Resource was authorized to store data at this Resource-ID by processing the corresponding ACL. To enable an accessing peer to perform the access validation procedure described in Section 6.3, it first needs to obtain the most recent Access Control List in the following way:

アクセスピア、つまり共有リソースをフェッチするピアは、対応するACLを処理することにより、共有リソースの発信者がこのリソースIDでデータを格納することを承認されていることを検証できます。アクセスピアがセクション6.3で説明されているアクセス検証手順を実行できるようにするには、まず次の方法で最新のアクセス制御リストを取得する必要があります。

1. Send a Stat request to the Resource-ID of the Shared Resource to obtain all array indexes of stored ACL Kinds (as per [RFC6940], Section 7.4.3.).

1. 共有リソースのResource-IDにStatリクエストを送信して、保存されているACLの種類のすべての配列インデックスを取得します([RFC6940]、セクション7.4.3に従って)。

2. Fetch all indexes of existing ACL items at this Resource-ID by using the array ranges retrieved in the Stat request answer.

2. Statリクエストの回答で取得した配列の範囲を使用して、このResource-IDで既存のACLアイテムのすべてのインデックスをフェッチします。

Peers can cache previously fetched Access Control Lists up to the maximum lifetime of an individual item. Since stored values could have been modified or invalidated prior to their expiration, an accessing peer SHOULD use a Stat request to check for updates prior to using the data cache.

ピアは、以前にフェッチされたアクセスコントロールリストを、個々のアイテムの最大存続期間までキャッシュできます。格納された値は有効期限が切れる前に変更または無効化される可能性があるため、アクセスピアはデータキャッシュを使用する前にStat要求を使用して更新をチェックする必要があります(SHOULD)。

6.6. USER-CHAIN-ACL Access Policy
6.6. USER-CHAIN-ACLアクセスポリシー

This document specifies an additional access control policy to the RELOAD base document [RFC6940]. The USER-CHAIN-ACL policy allows Authorized Peers to write a Shared Resource, even though they do not own the corresponding certificate. Additionally, the USER-CHAIN-ACL allows the storage of Kinds with a variable resource name that are following one of the specified naming patterns. Hence, on an inbound store request on a Kind that uses the USER-CHAIN-ACL access policy, the following rules MUST be applied:

このドキュメントは、RELOADベースドキュメント[RFC6940]への追加のアクセス制御ポリシーを指定します。 USER-CHAIN-ACLポリシーにより、許可されたピアは、対応する証明書を所有していなくても、共有リソースを書き込むことができます。さらに、USER-CHAIN-ACLを使用すると、指定された名前付けパターンのいずれかに従う変数リソース名を持つ種類のストレージを使用できます。したがって、USER-CHAIN-ACLアクセスポリシーを使用するKindのインバウンドストアリクエストでは、次のルールを適用する必要があります。

In the USER-CHAIN-ACL policy, a given value MUST NOT be written or overwritten, if neither one of USER-MATCH or USER-NODE-MATCH (mandatory if the data model is dictionary) access policies of the base document [RFC6940] applies.

USER-CHAIN-ACLポリシーでは、ベースドキュメントのUSER-MATCHまたはUSER-NODE-MATCH(データモデルがディクショナリの場合は必須)アクセスポリシーのいずれでもない場合、特定の値を書き込んだり上書きしたりしてはなりません[RFC6940]適用されます。

Additionally, the store request MUST be denied if the signer's certificate does not contain a username that matches to the user and domain portion in one of the variable resource name patterns (cf. Section 5) specified in the configuration document or if the hashed Resource Name does not match the Resource-ID. The Resource Name of the Kind to be stored MUST be taken from the mandatory ResourceNameExtension field in the corresponding Kind data structure.

さらに、署名者の証明書に、構成文書で指定された変数リソース名パターン(セクション5を参照)のユーザーおよびドメイン部分と一致するユーザー名が含まれていない場合、またはハッシュされたリソース名の場合、ストア要求は拒否する必要があります。 Resource-IDと一致しません。保存するKindのリソース名は、対応するKindデータ構造の必須のResourceNameExtensionフィールドから取得する必要があります。

If the access rights cannot be verified according to the ACL validation procedure described in Section 6.3, the store request MUST also be denied.

セクション6.3で説明されているACL検証手順に従ってアクセス権を検証できない場合は、ストアリクエストも拒否する必要があります。

Otherwise, the store request can be processed further.

それ以外の場合は、ストア要求をさらに処理できます。

7. ACCESS-CONTROL-LIST Kind Definition
7. ACCESS-CONTROL-LISTの種類の定義

This section defines the ACCESS-CONTROL-LIST Kind previously described in this document.

このセクションでは、このドキュメントで前述したACCESS-CONTROL-LISTの種類を定義します。

Name: ACCESS-CONTROL-LIST

名前:ACCESS-CONTROL-LIST

Kind IDs: The Resource Name for ACCESS-CONTROL-LIST Kind-ID is the Resource Name of the Kind that will be shared by using the ACCESS-CONTROL-LIST Kind.

種類:ACCESS-CONTROL-LISTのリソース名Kind-IDは、ACCESS-CONTROL-LISTの種類を使用して共有される種類のリソース名です。

Data Model: The data model for the ACCESS-CONTROL-LIST Kind-ID is array. The array indexes are formed by using the mechanism for isolated stored data as described in Section 3.1.

データモデル:ACCESS-CONTROL-LIST Kind-IDのデータモデルは配列です。配列インデックスは、セクション3.1で説明されている分離された保存データのメカニズムを使用して形成されます。

Access Control: USER-CHAIN-ACL (see Section 6.6).

アクセス制御:USER-CHAIN-ACL(セクション6.6を参照)。

8. Security Considerations
8. セキュリティに関する考慮事項

In this section, we discuss security issues that are relevant to the usage of Shared Resources in RELOAD [RFC6940].

このセクションでは、RELOAD [RFC6940]での共有リソースの使用に関連するセキュリティの問題について説明します。

8.1. Resource Exhaustion
8.1. リソースの枯渇

Joining a RELOAD overlay inherently poses a certain resource load on a peer, because it has to store and forward data for other peers. In common RELOAD semantics, each Resource-ID and thus position in the overlay, may only be written by a limited set of peers -- often even only a single peer, which limits this burden. In the case of Shared Resources, a single resource may be written by multiple peers who may even write an arbitrary number of entries (e.g., delegations in the ACL). This leads to an enhanced use of resources at individual overlay nodes. The problem of resource exhaustion can easily be mitigated for Usages based on the ShaRe-Usage by imposing restrictions on size, i.e., <max-size> element for a certain Kind in the configuration document.

RELOADオーバーレイに参加すると、他のピアのデータを格納および転送する必要があるため、本質的にピアに特定のリソース負荷がかかります。一般的なRELOADセマンティクスでは、各Resource-ID、つまりオーバーレイ内の位置は、限られたピアセットによってのみ書き込まれる可能性があります-多くの場合、この負担を制限する単一のピアのみです。共有リソースの場合、単一のリソースは、任意の数のエントリ(ACL内の委任など)を書き込むことさえできる複数のピアによって書き込まれる可能性があります。これにより、個々のオーバーレイノードでのリソースの使用が強化されます。リソースの枯渇の問題は、ShaRe-Usageに基づく使用法の場合、サイズ、つまり構成ドキュメントの特定の種類の<max-size>要素に制限を課すことで簡単に軽減できます。

8.2. Malicious or Misbehaving Storing Peer
8.2. 悪意のある、または不正な保存ピア

The RELOAD overlay is designed to operate despite the presence of a small set of misbehaving peers. This is not different for Shared Resources since a small set of malicious peers does not disrupt the functionality of the overlay in general, but may have implications for the peers needing to store or access information at the specific locations in the ID space controlled by a malicious peer. A storing peer could withhold stored data, which results in a denial of service to the group using the specific resource. But it could not return forged data, since the validity of any stored data can be independently verified using the attached signatures.

RELOADオーバーレイは、誤動作しているピアが少数存在しても動作するように設計されています。悪意のあるピアの小さなセットは一般にオーバーレイの機能を妨害しないため、これは共有リソースの場合と同じですが、悪意のあるユーザーが制御するIDスペースの特定の場所で情報を保存またはアクセスする必要があるピアに影響を与える可能性がありますピア。格納ピアは格納データを差し控える可能性があり、その結果、特定のリソースを使用するグループへのサービス拒否が発生します。ただし、保存されたデータの有効性は添付の署名を使用して個別に検証できるため、偽造データを返すことはできませんでした。

8.3. Trust Delegation to a Malicious or Misbehaving Peer
8.3. 悪意のある、または不正行為を行うピアへの委任の信頼

A Resource Owner that erroneously delegated write access to a Shared Resource for a misbehaving peer enables this malicious member of the overlay to interfere with the corresponding group application in several unwanted ways. Examples of destructive interferences range from exhausting shared storage to dedicated application-specific misuse. Additionally, a bogus peer that was granted delegation rights may authorize further malicious collaborators to writing the Shared Resource.

誤って動作しているピアの共有リソースへの書き込みアクセスを誤って委任したリソース所有者は、オーバーレイのこの悪意のあるメンバーが、いくつかの望ましくない方法で対応するグループアプリケーションに干渉することを可能にします。破壊的な干渉の例は、共有ストレージの枯渇から、アプリケーション固有の専用の誤用にまで及びます。さらに、委任権限が付与された偽のピアは、さらに悪意のある協力者に共有リソースの作成を許可する場合があります。

It is the obligation of the Resource Owner to bind trust delegation to apparent trustworthiness. Additional measures to monitor proper behavior may be applied. In any case, the Resource Owner will be able to revoke the trust delegation of an entire tree in a single overwrite operation. It further holds the right to overwrite any malicious contributions to the shared resource under misuse.

信頼の委任を明らかな信頼性に結びつけることは、リソース所有者の義務です。適切な動作を監視する追加の対策が適用される場合があります。いずれの場合でも、リソース所有者は、ツリー全体の信頼の委任を1回の上書き操作で取り消すことができます。さらに、悪用された共有リソースへの悪意のある貢献を上書きする権利を保持します。

8.4. Privacy Issues
8.4. プライバシー問題

All data stored in the Shared Resource is readable by any node in the overlay; thus, applications requiring privacy need to encrypt the data. The ACL needs to be stored unencrypted; thus, the list members of a group using a Shared Resource will always be publicly visible.

共有リソースに保存されているすべてのデータは、オーバーレイのどのノードでも読み取ることができます。したがって、プライバシーを必要とするアプリケーションは、データを暗号化する必要があります。 ACLは暗号化せずに保存する必要があります。したがって、共有リソースを使用するグループのリストメンバーは常に公開されます。

9. IANA Considerations
9. IANAに関する考慮事項
9.1. Access Control Policy
9.1. アクセス制御ポリシー

IANA has registered the following entry in the "RELOAD Access Control Policies" registry (cf. [RFC6940]) to represent the USER-CHAIN-ACL Access Control Policy, as described in Section 6.6.

セクション6.6で説明されているように、IANAは、「RELOADアクセス制御ポリシー」レジストリ([RFC6940]を参照)に次のエントリを登録して、USER-CHAIN-ACLアクセス制御ポリシーを表します。

                     +-------------------+----------+
                     | Access Policy     |      RFC |
                     +-------------------+----------+
                     | USER-CHAIN-ACL    | RFC 8076 |
                     +-------------------+----------+
        
9.2. Data Kind-ID
9.2. データの種類ID

IANA has registered the following code point in the "RELOAD Data Kind-ID" registry (cf. [RFC6940]) to represent the ShaRe ACCESS-CONTROL-LIST kind, as described in Section 7.

セクション7で説明するように、IANAは、「RELOAD Data Kind-ID」レジストリ([RFC6940]を参照)に次のコードポイントを登録して、ShaRe ACCESS-CONTROL-LISTの種類を表します。

             +----------------------+------------+----------+
             | Kind                 |    Kind-ID |      RFC |
             +----------------------+------------+----------+
             | ACCESS-CONTROL-LIST  |        0x4 | RFC 8076 |
             +----------------------+------------+----------+
        
9.3. XML Namespace Registration
9.3. XML名前空間の登録

This document registers the following URI for the config XML namespace in the IETF XML registry defined in [RFC3688].

このドキュメントは、[RFC3688]で定義されているIETF XMLレジストリに、config XML名前空間の次のURIを登録します。

   URI:  urn:ietf:params:xml:ns:p2p:config-base:share
        

Registrant Contact: The IESG

登録者の連絡先:IESG

XML: N/A, the requested URI is an XML namespace

XML:N / A、リクエストされたURIはXML名前空間です

10. References
10. 参考文献
10.1. Normative References
10.1. 引用文献

[IEEE-Posix] "IEEE Standard for Information Technology - Portable Operating System Interface (POSIX) - Part 2: Shell and Utilities (Vol. 1)", IEEE Std 1003.2-1992, ISBN 1-55937-255-9, DOI 10.1109/IEEESTD.1993.6880751, January 1993, <http://ieeexplore.ieee.org/document/6880751/>.

[IEEE-Posix]「IEEE Standard for Information Technology-Portable Operating System Interface(POSIX)-Part 2:Shell and Utilities(Vol。1)」、IEEE Std 1003.2-1992、ISBN 1-55937-255-9、DOI 10.1109 /IEEESTD.1993.6880751、1993年1月、<http://ieeexplore.ieee.org/document/6880751/>。

[OASIS.relax_ng] Clark, J. and M. Murata, "RELAX NG Specification", December 2001.

[OASIS.relax_ng]クラークJ.およびM.村田、「RELAX OF仕様」、2001年12月。

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

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<http://www.rfc-editor.org/info/ rfc2119>。

[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, <http://www.rfc-editor.org/info/rfc3688>.

[RFC3688] Mealling、M。、「The IETF XML Registry」、BCP 81、RFC 3688、DOI 10.17487 / RFC3688、2004年1月、<http://www.rfc-editor.org/info/rfc3688>。

[RFC6940] Jennings, C., Lowekamp, B., Ed., Rescorla, E., Baset, S., and H. Schulzrinne, "REsource LOcation And Discovery (RELOAD) Base Protocol", RFC 6940, DOI 10.17487/RFC6940, January 2014, <http://www.rfc-editor.org/info/rfc6940>.

[RFC6940] Jennings、C.、Lowekamp、B.、Ed。、Rescorla、E.、Baset、S。、およびH. Schulzrinne、「REsource LOcation And Discovery(RELOAD)Base Protocol」、RFC 6940、DOI 10.17487 / RFC6940 、2014年1月、<http://www.rfc-editor.org/info/rfc6940>。

[W3C.REC-xmlschema-2-20041028] Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes Second Edition", World Wide Web Consortium Recommendation REC-xmlschema-2-20041028, October 2004, <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.

[W3C.REC-xmlschema-2-20041028] Malhotra、A。およびP. Biron、「XML Schema Part 2:Datatypes Second Edition」、World Wide Web Consortium Recommendation REC-xmlschema-2-20041028、2004年10月、<http: //www.w3.org/TR/2004/REC-xmlschema-2-20041028>。

10.2. Informative References
10.2. 参考引用

[RFC7890] Bryan, D., Matthews, P., Shim, E., Willis, D., and S. Dawkins, "Concepts and Terminology for Peer-to-Peer SIP (P2PSIP)", RFC 7890, DOI 10.17487/RFC7890, June 2016, <http://www.rfc-editor.org/info/rfc7890>.

[RFC7890]ブライアン、D。、マシューズ、P。、シム、E。、ウィリス、D。、およびS.ドーキンス、「ピアツーピアSIP(P2PSIP)の概念と用語」、RFC 7890、DOI 10.17487 / RFC7890、2016年6月、<http://www.rfc-editor.org/info/rfc7890>。

[RFC7904] Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., Schulzrinne, H., and T. Schmidt, Ed., "A SIP Usage for REsource LOcation And Discovery (RELOAD)", RFC 7904, DOI 10.17487/RFC7904, October 2016, <http://www.rfc-editor.org/info/rfc7904>.

[RFC7904] Jennings、C.、Lowekamp、B.、Rescorla、E.、Baset、S.、Schulzrinne、H.、T. Schmidt、Ed。、 "A SIP Usage for REsource LOcation And Discovery(RELOAD)"、 RFC 7904、DOI 10.17487 / RFC7904、2016年10月、<http://www.rfc-editor.org/info/rfc7904>。

Acknowledgments

謝辞

This work was stimulated by fruitful discussions in the P2PSIP working group and the SAM research group. We would like to thank all active members for their constructive thoughts and feedback. In particular, the authors would like to thank (in alphabetical order) Emmanuel Baccelli, Ben Campbell, Alissa Cooper, Lothar Grimm, Russ Housley, Cullen Jennings, Matt Miller, Peter Musgrave, Joerg Ott, Marc Petit-Huguenin, Peter Pogrzeba, and Jan Seedorf. This work was partly funded by the German Federal Ministry of Education and Research, projects HAMcast, Mindstone, and SAFEST.

この作業は、P2PSIPワーキンググループとSAM研究グループでの実りある議論によって刺激されました。積極的なメンバーの建設的な考えとフィードバックに感謝します。特に、著者は(アルファベット順で)Emmanuel Baccelli、Ben Campbell、Alissa Cooper、Lothar Grimm、Russ Housley、Cullen Jennings、Matt Miller、Peter Musgrave、Joerg Ott、Marc Petit-Huguenin、Peter Pogrzeba、およびヤン・ゼードルフ。この作品は、ドイツ連邦教育研究省、プロジェクトHAMcast、マインドストーン、SAFESTから一部資金提供を受けています。

Authors' Addresses

著者のアドレス

Alexander Knauf HAW Hamburg Berliner Tor 7 Hamburg D-20099 Germany

Alexander Knauf HAWハンブルグベルリントール7ハンブルクD-20099ドイツ

   Phone: +4940428758067
   Email: alexanderknauf@gmail.com
        

Thomas C. Schmidt HAW Hamburg Berliner Tor 7 Hamburg D-20099 Germany

トーマスC.シュミットHAWハンブルグベルリントール7ハンブルクD-20099ドイツ

   Email: t.schmidt@haw-hamburg.de
   URI:   http://inet.haw-hamburg.de/members/schmidt
        

Gabriel Hege daviko GmbH Schillerstr. 107 Berlin D-10625 Germany

Gabriel Hege daviko GmbH Schillerstr。 107ベルリンD-10625ドイツ

   Phone: +493043004344
   Email: hege@daviko.com
        

Matthias Waehlisch link-lab & FU Berlin Hoenower Str. 35 Berlin D-10318 Germany

Matthias Waehlischリンクラボ&FUベルリンHoenower Str。 35ベルリンD-10318ドイツ

   Email: mw@link-lab.net
   URI:   http://www.inf.fu-berlin.de/~waehl