[Openstack-security] [Bug 1292283] Re: revocation events: deleting a token revokes all tokens with same expiration

David Chadwick 1292283 at bugs.launchpad.net
Sun Aug 17 15:41:50 UTC 2014


Revoking tokens based on either their creation time or expiration time
is conceptually wrong, because you can never guarantee that two totally
unrelated tokens do not have the same time stamps. So revoking one would
automatically revoke the other, and this is undesirable. Tokens should
have unique serial numbers, and revocation should be based on this. In
this way you can guarantee to revoke any single token without impacting
any other token. If you want to revoke a family of delegated tokens,
then you could hold the parent serial number in the child token, and
revoke parent and child either together or separately, or revoke all
tokens with the same parent serial number. For grandparents you would
need to follow the lineage - but how deep are these trees likely to get?

-- 
You received this bug notification because you are a member of OpenStack
Security Group, which is subscribed to OpenStack.
https://bugs.launchpad.net/bugs/1292283

Title:
  revocation events: deleting a token revokes all tokens with same
  expiration

Status in OpenStack Dashboard (Horizon):
  Confirmed
Status in OpenStack Identity (Keystone):
  Triaged

Bug description:
  As part of the design process for revocation events it was determined
  that a mechanism to revoke all dependent tokens was needed. This
  covers the case of revoking a token and ensuring all tokens that were
  created from that token are also revoked.

  To accomplish this, the revocation of a specific token is done by
  expiration_time. The expiration_time attribute is never changed on
  subsequent tokens. This means it is easy to ensure revocation of an
  entire chain of tokens.

  This poses an issue if any specific token (or all tokens that are a
  child of a specific token) should be revoked, but the parent tokens
  should not be revoked.

  Use case:

  Get Unscoped token
  Get Scoped Token from Unscoped token
  Get New Scoped Token
  Revoke first unscoped token
  Now all tokens (including the Unscoped token) are revoked because they share an expiration_time.

  Likely there needs to be a solution that allows for revoking based
  upon expiration_time and issued_at and one that revokes on
  expiration_time alone. Revoking by expiration_time alone is API
  incompatible with previous API mechanisms (both V2 and V3).

  This is the reason bug https://bugs.launchpad.net/horizon/+bug/1291099
  was identified.

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1292283/+subscriptions




More information about the Openstack-security mailing list