99designs / 99designs/http-signatures-php

Key rotation: Verifier should support N keys

Open
#18 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
46
Forks
35
PR merge metrics
No merged PRs in 30d

Description

_Copied from https://github.com/99designs/http-signatures-ruby/issues/10_

---

Currently key rotation is difficult; the verifier needs to start verifying with the new key at the same moment the new key is used by the signer. In a high-traffic environment this can be near impossible without dropping requests.

It should be possible to pass multiple keys to the verifier, so that both old and new keys can be accepted for a period of time. Either N keys, or a static limit of two keys (current and previous) would work.

This could be represented by passing an array of keys per ID; using the first for signing, and using all of them for verification. Or… something else?

Contributor guide

No contributing guide indexed for this repository

Research direction

Look at the Verifier class to understand how it currently handles a single key. The change involves modifying it to accept an array of keys per key ID, likely in the constructor or verification method. Check existing tests for verification to see how to adapt them for multiple keys. 'Done' means the verifier can successfully verify signatures using any of the provided keys for a given ID.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend-api-design, security
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.