Hi Olaf,

On 9/17/20 4:09 AM, Olaf Bergmann wrote:
Hi Paul,

Responding to you remaining comments please see inline.

Paul Kyzivat <pkyzi...@alum.mit.edu> writes:

* Also in section 3.3:

     All CBOR data types are encoded in CBOR using preferred serialization
     and deterministic encoding as specified in Section 4 of
     [I-D.ietf-cbor-7049bis].  This implies in particular that the "type"
     and "L" components use the minimum length encoding.  The content of
     the "access_token" field is treated as opaque data for the purpose of
     key derivation.

IIUC the type of serialization and encoding is a requirement. Will
need some rewording to make it so.

I take it that you and Ben have agreed that the example description does
not necessarily need normative language as the description of this key
derivation procedure is meant as an example how the authorization server
and the resource server can securely agree on a shared secret to be used
between the client and the resource server.

This still confuses me. IIUC preferred serialization and deterministic
encoding are *optional* in CBOR. The text hear seems to require it,
but doesn't use normative language to do so.

If these are required for things to work then you make a normative
statement about it. E.g., "The "type" and "L" components MUST use the
minimum length encoding."

Or do you intend that some other (non-minimum-length) MAY be used? (In
which case both sides would need a side agreement on what encoding is
used.)

The text here just gives an example how key derivation may be used by
the authorization server and the resource server to agree on a shared
secret (that is used to encrypt the traffic between the resource server
and the to-be-authorized client).

To that regard, the text is not really normative. The only normative
language we need here would be to avoid security issues. Commenting on
the data representation here is to be understood as a suggestion to use,
e.g., preferred CBOR serialization according to 7049bis.

[...]

Sorry to be so dense, but I'm still not getting it.

I take your point that this is only an example of a way to agree on a shared secret. But at the end of the day they indeed must somehow agree on a shared secret. *If* they use this technique then it will only work if they also agree on a consistent way to do the serialization and encoding that is otherwise not standardized. So they need a side agreement, which is not a good situation for a standardized protocol.

At the very least it seems like you should highlight that some sort of out of band communication is required between the authorization and resource servers to establish the shared secret or the algorithm to be used for deriving the shared secret.

OLD:

    New access tokens issued by the authorization server are supposed to
    replace previously issued access tokens for the respective client.

NEW:

    New access tokens issued by the authorization server replace
    previously issued access tokens for the respective client.

The above is still non-normative. Perhaps:

       New access tokens issued by the authorization server MUST replace
       previously issued access tokens for the respective client.

Following Section 5.8.1 of the framework document, this should be a
SHOULD (the text there reads as: "This specification RECOMMENDS that an
RS stores only one token per proof-of-possession key, meaning that an
additional token linked to the same key will overwrite any existing
token at the RS."

The text then would read as follows (changes are the new SHOULD and
"needs a common understanding" instead of "must have":

OLD:

    According to
    Section 5.8.1 of [I-D.ietf-ace-oauth-authz], there should be only one
    access token for each client.  New access tokens issued by the
    authorization server replace previously issued access tokens for the
    respective client.  The resource server therefore must have a common
    understanding with the authorization server how access tokens are
    ordered.  The authorization server may, e.g., specify a "cti" claim
    for the access token (see Section 5.8.3 of
    [I-D.ietf-ace-oauth-authz]) to employ a strict order.

NEW:

    According to
    Section 5.8.1 of [I-D.ietf-ace-oauth-authz], there should be only one
    access token for each client.  New access tokens issued by the
    authorization server SHOULD replace previously issued access tokens for the
    respective client.  The resource server therefore needs a common
    understanding with the authorization server how access tokens are
    ordered.  The authorization server may, e.g., specify a "cti" claim
    for the access token (see Section 5.8.3 of
    [I-D.ietf-ace-oauth-authz]) to employ a strict order.

That seems ok.

        Thanks,
        Paul

_______________________________________________
Gen-art mailing list
Gen-art@ietf.org
https://www.ietf.org/mailman/listinfo/gen-art

Reply via email to