Skip to content

Commit a86992c

Browse files
committed
Incorporated comments, introduced registry for schemes
1 parent 8eb2d68 commit a86992c

3 files changed

Lines changed: 88 additions & 30 deletions

File tree

IETF-OCM-MLS.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1587,19 +1587,22 @@ Each notification MAY include the optional `encryption` field:
15871587
},
15881588
"encryption": {
15891589
"resourceId": "3a02538b-aa54-42f2-8853-a38996e211b1"
1590-
"scheme": "ocm-mls-1",
1591-
"cipher": "AES-256-GCM",
1590+
"scheme": "ocm-mls",
1591+
"ocm-mls": {
1592+
"cipher": "AES-256-GCM",
1593+
}
15921594
}
15931595
}
15941596
~~~
15951597

15961598
The `encryption` field is OPTIONAL as per [OCM] Share Creation
15971599
Notification specification. If absent, the resource is unencrypted.
1598-
If present, it MUST carry the encryption-related parameters according
1599-
to the [OCM] specification, where:
1600+
If present, and the symmetric encryption available via OCM-MLS is to
1601+
be used, it MUST carry the encryption-related parameters according to
1602+
the [OCM] specification, where:
16001603
- `resourceId` is the stable resource identifier described in
16011604
{{resource-id}}
1602-
- `scheme` is to be set to `"ocm-mls-1"`
1605+
- `scheme` is to be set to `"ocm-mls"`
16031606
- `cipher` names the content AEAD that the resource is encrypted with
16041607
({{file-key-wrapping}}), one of the AEAD algorithms defined for HPKE
16051608
([RFC9180] Section 7.3): `"AES-128-GCM"`, `"AES-256-GCM"`, or
@@ -2012,6 +2015,20 @@ registrations do not modify the protocols' own registrations:
20122015
+===============+============+=====================+===============+
20132016
~~~
20142017

2018+
The following entries are to be registered in the "OCM Encryption
2019+
Schemes" registry defined in [OCM], within the "Open Cloud Mesh (OCM)
2020+
Parameters" group:
2021+
2022+
~~~
2023+
+=========+============+===============+
2024+
| Scheme | Share Type | Reference |
2025+
+=========+============+===============+
2026+
| ocm-pgp | federation | This document |
2027+
| ocm-mls | federation | This document |
2028+
+=========+============+===============+
2029+
~~~
2030+
2031+
20152032
# Open Issues
20162033

20172034
This section collects open design issues and shall be removed before

IETF-OCM.md

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,9 +1100,17 @@ described in [OCM-IP].
11001100
- REQUIRED resourceId (string) - a unique identifier of the
11011101
underlying resource.
11021102
- REQUIRED scheme (string) - an identifier of the encryption scheme
1103-
used to encrypt the resource, such as "ocm-pgp-1".
1104-
- REQUIRED cipher (string) - the encryption algorithm used to encrypt
1105-
the resource as in [RFC9180] Section 7.3.
1103+
used to encrypt the resource, such as "ocm-pgp". Registered values
1104+
are listed in the "OCM Encryption Schemes" registry (see
1105+
[IANA Considerations](#iana-considerations)).
1106+
- REQUIRED {schemeObject} (object) - an object keyed with the given
1107+
scheme, containing the details of the encryption used.
1108+
For the "ocm-gpg" scheme, it MUST contain:
1109+
- fingerprints (array of strings) - one or more fingerprints of
1110+
the public keys used to encrypt the resource.
1111+
For the "ocm-mls" scheme, it MUST contain:
1112+
- cipher (string) - the encryption algorithm used to encrypt the
1113+
resource as in [RFC9180] Section 7.3.
11061114
* REQUIRED protocol (object)
11071115
JSON object with specific options for each protocol.
11081116
The supported protocols are:
@@ -1886,7 +1894,7 @@ policy for each registry in this group is "Specification Required"
18861894
is documented in a stable, publicly available specification and that it
18871895
does not duplicate an existing entry.
18881896

1889-
## OCM Resource Types Registry
1897+
### OCM Resource Types Registry
18901898

18911899
IANA is requested to create the "OCM Resource Types" registry in the
18921900
"Open Cloud Mesh (OCM) Parameters" group. This registry records the
@@ -1908,7 +1916,7 @@ the [OCM API Discovery](#ocm-api-discovery) endpoint.
19081916
+===============+=====================+===============+
19091917
~~~
19101918

1911-
## OCM Protocols Registry
1919+
### OCM Protocols Registry
19121920

19131921
IANA is requested to create the "OCM Protocols" registry in the "Open
19141922
Cloud Mesh (OCM) Parameters" group. Each entry records a protocol
@@ -1942,7 +1950,7 @@ for a given resource type and share type is governed by the
19421950
+================+=========+===============+
19431951
~~~
19441952

1945-
## OCM Share Types Registry
1953+
### OCM Share Types Registry
19461954

19471955
IANA is requested to create the "OCM Share Types" registry in the
19481956
"Open Cloud Mesh (OCM) Parameters" group. Each entry records a share
@@ -1966,7 +1974,7 @@ The "federation" share type, for example, is registered by [OCM-MLS].
19661974
+============+===============+
19671975
~~~
19681976

1969-
## OCM Share Payloads Registry
1977+
### OCM Share Payloads Registry
19701978

19711979
IANA is requested to create the "OCM Share Payloads" registry in the
19721980
"Open Cloud Mesh (OCM) Parameters" group. Whereas the "OCM Resource
@@ -2017,7 +2025,7 @@ interoperable way, they can do so using this very mechanism.
20172025
+===============+============+=====================+===============+
20182026
~~~
20192027

2020-
## OCM Notification Types Registry
2028+
### OCM Notification Types Registry
20212029

20222030
IANA is requested to create the "OCM Notification Types" registry in
20232031
the "Open Cloud Mesh (OCM) Parameters" group. This registry records
@@ -2051,6 +2059,26 @@ payload.
20512059
+===========================+===========+===============+
20522060
~~~
20532061

2062+
### OCM Encryption Schemes Registry
2063+
2064+
IANA is requested to create the "OCM Encryption Schemes" registry in
2065+
the "Open Cloud Mesh (OCM) Parameters" group. This registry records
2066+
the values that MAY appear in the "encryption.scheme" field of a
2067+
[Share Creation Notification](#share-creation-notification).
2068+
2069+
Registration Policy: Specification Required [RFC8126]
2070+
2071+
Initial Contents:
2072+
2073+
~~~
2074+
+=========+============+===============+
2075+
| Scheme | Share Type | Reference |
2076+
+=========+============+===============+
2077+
| ocm-pgp | user | This document |
2078+
| ocm-pgp | group | This document |
2079+
+=========+============+===============+
2080+
~~~
2081+
20542082
# Security Considerations
20552083

20562084
## Threat Model

spec.yaml

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -423,18 +423,18 @@ components:
423423
Implementations that support receiving SSH shares MUST
424424
advertise them here, with an empty object as value.
425425
additionalProperties:
426-
oneOf:
427-
- type: string
428-
- type: object
429-
description: >
430-
Any additional protocol supported for this resource type SHOULD
431-
be advertised here, where the value MAY correspond to a top-level
432-
URI to be used for that protocol, or any other relevant
433-
attribute required for that protocol. Similarly, additional
434-
receiving capabilities for custom protocols SHOULD be advertised.
435-
Additional protocols are to be registered in the "OCM Protocols"
436-
registry (see the IANA Considerations section of the OCM
437-
Internet-Draft).
426+
oneOf:
427+
- type: string
428+
- type: object
429+
description: >
430+
Any additional protocol supported for this resource type SHOULD
431+
be advertised here, where the value MAY correspond to a top-level
432+
URI to be used for that protocol, or any other relevant
433+
attribute required for that protocol. Similarly, additional
434+
receiving capabilities for custom protocols SHOULD be advertised.
435+
Additional protocols are to be registered in the "OCM Protocols"
436+
registry (see the IANA Considerations section of the OCM
437+
Internet-Draft).
438438
example:
439439
webdav: /remote/dav/ocm/
440440
webdav-receive: {
@@ -613,7 +613,6 @@ components:
613613
required:
614614
- resourceId
615615
- scheme
616-
- cipher
617616
properties:
618617
resourceId:
619618
type: string
@@ -623,11 +622,25 @@ components:
623622
scheme:
624623
type: string
625624
description: >
626-
An identifier of the encryption scheme used to encrypt the resource.
627-
cipher:
628-
type: string
625+
An identifier of the encryption scheme used to encrypt the resource, as
626+
defined in the OCM IANA registry for encryption schemes. The value MUST
627+
be a registered scheme name, such as 'ocm-pgp' or 'ocm-mls'.
628+
additionalProperties:
629+
type: object
629630
description: >
630-
The encryption algorithm used to encrypt the resource.
631+
This object MUST be keyed with the name of the encryption scheme, and its
632+
value MUST be a JSON object with additional properties specific to that
633+
scheme. For the 'ocm-pgp' scheme, the object MUST contain a 'fingerprints'
634+
array of string, with one or more fingerprints of the public keys used to
635+
encrypt the resource. For the 'ocm-mls' scheme, the object MUST contain
636+
a 'cipher' string with the identifier of the cipher used to encrypt the
637+
resource, such as 'AES-256-GCM'.
638+
example:
639+
resourceId: 7c084226-d9a1-11e6-bf26-cec0c932ce01
640+
scheme: ocm-pgp
641+
ocm-pgp:
642+
fingerprints:
643+
- 3F:2A:4B:5C:6D:7E:8F:9A:0B:1C:2D:3E:4F:5A:6B:7C
631644
protocol:
632645
type: object
633646
description: |

0 commit comments

Comments
 (0)