Signed SMS payloads
mikehelmick opened this issue · comments
TL;DR
Implement signed SMS payloads.
Design
Proposal
-
Per-realm SMS signing keys. These are distinct from the verification certificate signing keys
-
The signature is calculated over a preamble and the message body up to the keyword "Authorization:" Everything after that is the signature itself, including the kid to use from the public key set for signature verification.
/assign
Targeting v0.21 - may not make it until v0.22
A few questions:
-
I assume we'll also want to hook into rotation. At what frequency should we rotate and for how long should a rotated key still be included in the allowed list?
-
The spec required some kind of server-side kill switch. I was thinking we could just implement system-admin and realm-admin revocation permissions. Does that make sense?
-
Where are we publishing the public keys? I remember the original proposal was to use the jwks endpoints, but this would be a different type of key, so it'd require a new discovery endpoint, right?
-
Manual rotation only - we can probably reuse a lot of the UI from the existing signing keys UI
-
Server side kill switch is related to OS specific thing to stop verifying these messages - nothing here
-
Manual distribution of key to Google and Apple