Skip to content

§5.2: "expiry" is separated from its antecedent and reads as key expiry #133

Description

@pierluc-codes

Against draft-ietf-webbotauth-httpsig-protocol-00, §5.2.

§5.2 introduces expires as a required @signature-params entry, then the
list continues with keyid and tag, and three sentences on other topics
follow before the recommendation:

The signing key is available to the agent at request time. Algorithms should
be registered with IANA as part of HTTP Message Signatures Algorithm
registry.

The creation of the signature is defined in Section 3.1 of
[HTTP-MESSAGE-SIGNATURES].

It is RECOMMENDED that expiry be no more than 24 hours.

By that point the nearest concrete noun is "the signing key", and the sentence
says "expiry" rather than naming the parameter. I read it as a bound on key
lifetime.

The document uses that word family for both clocks, which is what makes the
bare noun ambiguous rather than merely loose. §5.5.2 describes a key's own
expiry in the same terms: "Continue to include the old key until its
expiration date", and "Remove expired keys from the directory". The directory
example in §5.5.1 gives such a key a 30-day life (nbf 2024-04-11, exp
2024-05-11). A reader who attaches the 24-hour figure to keys therefore lands
somewhere the document contradicts by two orders of magnitude, and has no local
cue that they have done so.

In fairness, the paragraph immediately after does resolve it: "A signature
covering @authority alone verifies against any method, path, or body sent to
that authority until it expires [...] expires bounds how long that lasts."
So a reader going straight through recovers one paragraph later. The cost is
that they recover by backtracking, having already formed the wrong reading.
Naming the parameter avoids that for one word.

Suggested fix, either:

  • name the parameter: "It is RECOMMENDED that a signature's expires be no
    more than 24 hours after its created."
  • or move the sentence up so it attaches directly to the expires entry in the
    @signature-params list, where its antecedent is unambiguous.

Activity

  1. thibmeu commented on Oct 5, 2026

    @thibmeu
    Collaborator

    that's a good pick. as the draft evolved, text might be slightly harder to parse. I've openned #137 to address it

  2. added a commit that references this issue on Oct 9, 2026
    73881c8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions