Closed Bug 787963 Opened 12 years ago Closed 10 years ago

[Security Review] [Action Item] Investigate and implement a revocation service for Push API

Categories

(mozilla.org :: Security Assurance, task, P1)

x86
macOS

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: pauljt, Assigned: pauljt)

References

Details

In the current proposal, if a developer's private key used to sign Push API notifications is compromised, the only recourse the developer has is to update all of its client's, hoping that no clients are left using the old compromised key. As there is no guarantee that all clients will be updated in the current update mechanism, the developer is left to implement some mechanism to revoke and re-issue keys on their own. (ie web-apps would need to implement a check every time they used push notifications to ensure that the developers public key hasn't changed)

An extension to the current API was proposed during the security review, that a developer could issue a "revoke" command to the notification server to prevent a compromised keys from being used in the future. Technical details need to be determined but some proposals were:
- The developer signs a well-known message (revoke1234!) with their private key, and send the corresponding public key and signed message to notification server
- the notification server would remove all registrations of this key (or flag them as 'outdated key?") 
- the notifications server would need to keep a blacklist of 'compromised keys'to prevent clients from re-registering with such a key.

The flip-side of this proposal is that an attacker who only has the developer's private/public key pair can DoS the Push notifications for a service. Client's will not be able to receive notifications until the get a new key.

The trade off that needs to be decided here is:
- without revocation an attacker who has both keys and WATokens can spoof notifications to clients as if they were the compromised web application, until such time as ALL clients have updated with new keys (or clients must check the public key every time retrieve a push notification)
- with a revoke function, push notifications will be unavailable to clients until they update their push notification public keys and re-register
This push solution was abandoned in favor of an alternative so this no longer applies.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.