Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: OpenStack: Dev

Keystone: 'PKI Signed Tokens' lack support for revocation

 

 

OpenStack dev RSS feed   Index | Next | Previous | View Threaded


mnewby at internap

Aug 1, 2012, 6:19 PM

Post #1 of 13 (190 views)
Permalink
Keystone: 'PKI Signed Tokens' lack support for revocation

I see that support for PKI Signed Tokens has been added to Keystone without support for token revocation. I tried to raise this issue on the bug report:

https://bugs.launchpad.net/keystone/+bug/1003962/comments/4

And the review:

https://review.openstack.org/#/c/7754/

I'm curious as to whether anybody shares my concern and if there is a specific reason why nobody responded to my question as to why revocation is not required for this new token scheme. Anybody?

Thanks,


Maru


ayoung at redhat

Aug 1, 2012, 6:47 PM

Post #2 of 13 (182 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

On 08/01/2012 09:19 PM, Maru Newby wrote:
> I see that support for PKI Signed Tokens has been added to Keystone
> without support for token revocation. I tried to raise this issue on
> the bug report:
>
> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>
> And the review:
>
> https://review.openstack.org/#/c/7754/
>
> I'm curious as to whether anybody shares my concern and if there is a
> specific reason why nobody responded to my question as to why
> revocation is not required for this new token scheme. Anybody?

It was discussed back when I wrote the Blueprint. While it is possible
to do revocations with PKI, it is expensive and requires a lot of extra
checking. Revocation is a policy decision, and the assumption is that
people that are going to use PKI tokens are comfortable with out
revocation. Kerberos service tickets have the same limitation, and
Kerberos has been in deployment that way for close to 25 years.

Assuming that PKI ticket lifespan is short enough, revocation should
not be required. What will be tricky is to balance the needs of long
lived tokens (delayed operations, long running operations) against the
needs for reasonable token timeout.

PKI Token revocation would look like CRLs in the Certificate world.
While they are used, they are clunky. Each time a token gets revoked, a
blast message would have to go out to all registered parties informing
them of the revocation. Keystone does not yet have a message queue
interface, so doing that is prohibitive in the first implementation.

Note that users can get disabled, and token chaining will no longer
work: you won't be able to use a token to get a new token from Keystone.


>
> Thanks,
>
>
> Maru
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp


mnewby at internap

Aug 1, 2012, 8:05 PM

Post #3 of 13 (175 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

Hi Adam,

I apologize if my questions were answered before. I wasn't aware that what I perceive as a very serious security concern was openly discussed. The arguments against revocation support, as you've described them, seem to be:

- it's complicated/messy/expensive to implement and/or execute
- Kerberos doesn't need it, so why would we?

I'm not sure why either of these arguments would justify the potential security hole that a lack of revocation represents, but I suppose a 'short enough' token lifespan could minimize that hole. But how short a span are you suggesting as being acceptable?

The delay between when a user's access permissions change (whether roles, password or even account deactivation) and when the ticket reflects that change is my concern. The default in Keystone has been 24h, which is clearly too long. Something on the order of 5 minutes would be ideal, but then ticket issuance could become the bottleneck. Validity that's much longer could be a real problem, though. Maybe not at the cloud administration level, but for a given project I can imagine someone being fired and their access being revoked. How long is an acceptable period for that ticket to still be valid? How much damage could be done by someone who should no longer have access to an account if their access cannot be revoked, by anyone, at all?

I'm hearing that you, as the implementer of this feature, don't consider the lack of revocation to be an issue. What am I missing? Is support for revocation so repugnant that the potential security hole is preferable? I can see that from a developer's perspective, but I don't understand why someone deploying Keystone wouldn't avoid PKI tokens until revocation support became available.

Thanks,


Maru



On 2012-08-01, at 9:47 PM, Adam Young wrote:

> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>
>> I see that support for PKI Signed Tokens has been added to Keystone without support for token revocation. I tried to raise this issue on the bug report:
>>
>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>
>> And the review:
>>
>> https://review.openstack.org/#/c/7754/
>>
>> I'm curious as to whether anybody shares my concern and if there is a specific reason why nobody responded to my question as to why revocation is not required for this new token scheme. Anybody?
>
> It was discussed back when I wrote the Blueprint. While it is possible to do revocations with PKI, it is expensive and requires a lot of extra checking. Revocation is a policy decision, and the assumption is that people that are going to use PKI tokens are comfortable with out revocation. Kerberos service tickets have the same limitation, and Kerberos has been in deployment that way for close to 25 years.
>
> Assuming that PKI ticket lifespan is short enough, revocation should not be required. What will be tricky is to balance the needs of long lived tokens (delayed operations, long running operations) against the needs for reasonable token timeout.
>
> PKI Token revocation would look like CRLs in the Certificate world. While they are used, they are clunky. Each time a token gets revoked, a blast message would have to go out to all registered parties informing them of the revocation. Keystone does not yet have a message queue interface, so doing that is prohibitive in the first implementation.
>
> Note that users can get disabled, and token chaining will no longer work: you won't be able to use a token to get a new token from Keystone.
>
>
>>
>> Thanks,
>>
>>
>> Maru
>>
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack [at] lists
>> Unsubscribe : https://launchpad.net/~openstack
>> More help : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp


heckj at me

Aug 1, 2012, 10:56 PM

Post #4 of 13 (173 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

Hey Maru,

I think you're putting too many words in Adam's mouth here. First, Adam didnt assert is wasnt valuable, useful, or nessecary - simply that it wasnt in the first cut and not in the list that we agreed was critically essential to an initial implementation. As you noted, its a complex and somewhat tricky issue to get right.

There's always room for more participation to correct the flaws you see in the existing system - the beauty of open source. I would love to see continued work on the signing and revocation work to drive in these features that mean so much to you. I'd be happy to open a blueprint if you can stand behind it, define what you think it required, and commit to the work to implement that revocation mechanism.

Implying negative emotions on Adam's part when he's been one driving the implementation and doing the work is simply inappropriate. Please consider the blueprint route, definition of a viable solution, and work to make it happen instead of name calling and asserting how the developers doing the work are screwing up.

- joe

On Aug 1, 2012, at 8:05 PM, Maru Newby <mnewby [at] internap> wrote:
> Hi Adam,
>
> I apologize if my questions were answered before. I wasn't aware that what I perceive as a very serious security concern was openly discussed. The arguments against revocation support, as you've described them, seem to be:
>
> - it's complicated/messy/expensive to implement and/or execute
> - Kerberos doesn't need it, so why would we?
>
> I'm not sure why either of these arguments would justify the potential security hole that a lack of revocation represents, but I suppose a 'short enough' token lifespan could minimize that hole. But how short a span are you suggesting as being acceptable?
>
> The delay between when a user's access permissions change (whether roles, password or even account deactivation) and when the ticket reflects that change is my concern. The default in Keystone has been 24h, which is clearly too long. Something on the order of 5 minutes would be ideal, but then ticket issuance could become the bottleneck. Validity that's much longer could be a real problem, though. Maybe not at the cloud administration level, but for a given project I can imagine someone being fired and their access being revoked. How long is an acceptable period for that ticket to still be valid? How much damage could be done by someone who should no longer have access to an account if their access cannot be revoked, by anyone, at all?
>
> I'm hearing that you, as the implementer of this feature, don't consider the lack of revocation to be an issue. What am I missing? Is support for revocation so repugnant that the potential security hole is preferable? I can see that from a developer's perspective, but I don't understand why someone deploying Keystone wouldn't avoid PKI tokens until revocation support became available.
>
> Thanks,
>
>
> Maru
>
>
>
> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>
>> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>>
>>> I see that support for PKI Signed Tokens has been added to Keystone without support for token revocation. I tried to raise this issue on the bug report:
>>>
>>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>>
>>> And the review:
>>>
>>> https://review.openstack.org/#/c/7754/
>>>
>>> I'm curious as to whether anybody shares my concern and if there is a specific reason why nobody responded to my question as to why revocation is not required for this new token scheme. Anybody?
>>
>> It was discussed back when I wrote the Blueprint. While it is possible to do revocations with PKI, it is expensive and requires a lot of extra checking. Revocation is a policy decision, and the assumption is that people that are going to use PKI tokens are comfortable with out revocation. Kerberos service tickets have the same limitation, and Kerberos has been in deployment that way for close to 25 years.
>>
>> Assuming that PKI ticket lifespan is short enough, revocation should not be required. What will be tricky is to balance the needs of long lived tokens (delayed operations, long running operations) against the needs for reasonable token timeout.
>>
>> PKI Token revocation would look like CRLs in the Certificate world. While they are used, they are clunky. Each time a token gets revoked, a blast message would have to go out to all registered parties informing them of the revocation. Keystone does not yet have a message queue interface, so doing that is prohibitive in the first implementation.
>>
>> Note that users can get disabled, and token chaining will no longer work: you won't be able to use a token to get a new token from Keystone.
>>
>>
>>>
>>> Thanks,
>>>
>>>
>>> Maru
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to : openstack [at] lists
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack [at] lists
>> Unsubscribe : https://launchpad.net/~openstack
>> More help : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp


ayoung at redhat

Aug 2, 2012, 6:59 AM

Post #5 of 13 (167 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

On 08/02/2012 01:56 AM, Joseph Heck wrote:
> Hey Maru,
>
> I think you're putting too many words in Adam's mouth here. First,
> Adam didnt assert is wasnt valuable, useful, or nessecary - simply
> that it wasnt in the first cut and not in the list that we agreed was
> critically essential to an initial implementation. As you noted, its a
> complex and somewhat tricky issue to get right.
>
> There's always room for more participation to correct the flaws you
> see in the existing system - the beauty of open source. I would love
> to see continued work on the signing and revocation work to drive in
> these features that mean so much to you. I'd be happy to open a
> blueprint if you can stand behind it, define what you think it
> required, and commit to the work to implement that revocation mechanism.
>
> Implying negative emotions on Adam's part when he's been one driving
> the implementation and doing the work is simply inappropriate. Please
> consider the blueprint route, definition of a viable solution, and
> work to make it happen instead of name calling and asserting how the
> developers doing the work are screwing up.

Thanks for the support Joe. I don't think Maru was being too harsh. So
long as he doesn't start calling me "Sir" as that is always an followed
by "you are making a scene."
>
> - joe
>
> On Aug 1, 2012, at 8:05 PM, Maru Newby <mnewby [at] internap
> <mailto:mnewby [at] internap>> wrote:
>> Hi Adam,
>>
>> I apologize if my questions were answered before. I wasn't aware
>> that what I perceive as a very serious security concern was openly
>> discussed. The arguments against revocation support, as you've
>> described them, seem to be:
>>
>> - it's complicated/messy/expensive to implement and/or execute
>> - Kerberos doesn't need it, so why would we?
>>
>> I'm not sure why either of these arguments would justify the
>> potential security hole that a lack of revocation represents, but I
>> suppose a 'short enough' token lifespan could minimize that hole.
>> But how short a span are you suggesting as being acceptable?
>>
>> The delay between when a user's access permissions change (whether
>> roles, password or even account deactivation) and when the ticket
>> reflects that change is my concern. The default in Keystone has been
>> 24h, which is clearly too long. Something on the order of 5 minutes
>> would be ideal, but then ticket issuance could become the bottleneck.
>> Validity that's much longer could be a real problem, though. Maybe
>> not at the cloud administration level, but for a given project I can
>> imagine someone being fired and their access being revoked. How long
>> is an acceptable period for that ticket to still be valid? How much
>> damage could be done by someone who should no longer have access to
>> an account if their access cannot be revoked, by anyone, at all?
>>
>> I'm hearing that you, as the implementer of this feature, don't
>> consider the lack of revocation to be an issue. What am I missing?
>> Is support for revocation so repugnant that the potential security
>> hole is preferable? I can see that from a developer's perspective,
>> but I don't understand why someone deploying Keystone wouldn't avoid
>> PKI tokens until revocation support became available.
I think you have valid concerns. Realistically, I think 5 minutes is
too short, and for many operations, 24 hours would be the right
granularity. However, The timespan of the tokens is configurable, and
the policy of the deploying organization should dictate.

Remember, this is the administrative interface for virtual machines, and
not the applications running in them. Removing someone from access to
creating/rebooting/destroying virtual machines is a much more deliberate
decision than banning someone from a public forum. Aside from someone
getting fired, I am not sure how essential it is that we have rapid
revocation of tokens. And firing someone is usually part of the whole
"escort from the building" routine.

So, let me put the onus on you: make the argument for rapid revocation
of tokens.


>>
>> Thanks,
>>
>>
>> Maru
>>
>>
>> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>>
>>> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>>> I see that support for PKI Signed Tokens has been added to Keystone
>>>> without support for token revocation. I tried to raise this issue
>>>> on the bug report:
>>>>
>>>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>>>
>>>> And the review:
>>>>
>>>> https://review.openstack.org/#/c/7754/
>>>>
>>>> I'm curious as to whether anybody shares my concern and if there is
>>>> a specific reason why nobody responded to my question as to why
>>>> revocation is not required for this new token scheme. Anybody?
>>>
>>> It was discussed back when I wrote the Blueprint. While it is
>>> possible to do revocations with PKI, it is expensive and requires a
>>> lot of extra checking. Revocation is a policy decision, and the
>>> assumption is that people that are going to use PKI tokens are
>>> comfortable with out revocation. Kerberos service tickets have the
>>> same limitation, and Kerberos has been in deployment that way for
>>> close to 25 years.
>>>
>>> Assuming that PKI ticket lifespan is short enough, revocation
>>> should not be required. What will be tricky is to balance the needs
>>> of long lived tokens (delayed operations, long running operations)
>>> against the needs for reasonable token timeout.
>>>
>>> PKI Token revocation would look like CRLs in the Certificate world.
>>> While they are used, they are clunky. Each time a token gets
>>> revoked, a blast message would have to go out to all registered
>>> parties informing them of the revocation. Keystone does not yet
>>> have a message queue interface, so doing that is prohibitive in the
>>> first implementation.
>>>
>>> Note that users can get disabled, and token chaining will no longer
>>> work: you won't be able to use a token to get a new token from
>>> Keystone.
>>>
>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>> Maru
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list:https://launchpad.net/~openstack
>>>> Post to :openstack [at] lists
>>>> Unsubscribe :https://launchpad.net/~openstack
>>>> More help :https://help.launchpad.net/ListHelp
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> <https://launchpad.net/%7Eopenstack>
>>> Post to : openstack [at] lists
>>> <mailto:openstack [at] lists>
>>> Unsubscribe : https://launchpad.net/~openstack
>>> <https://launchpad.net/%7Eopenstack>
>>> More help : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> <https://launchpad.net/%7Eopenstack>
>> Post to : openstack [at] lists
>> <mailto:openstack [at] lists>
>> Unsubscribe : https://launchpad.net/~openstack
>> <https://launchpad.net/%7Eopenstack>
>> More help : https://help.launchpad.net/ListHelp


jason.rouault at hp

Aug 2, 2012, 7:41 AM

Post #6 of 13 (174 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

This was a concern for HP as well. This is one of the reasons we were happy
to see that signed tokens are currently a deployment option. So, you can
continue to use the unsigned model until such a time that revocation can be
put into place for the token signing model.



Jason



From: openstack-bounces+jason.rouault=hp.com [at] lists
[mailto:openstack-bounces+jason.rouault=hp.com [at] lists] On
Behalf Of Maru Newby
Sent: Wednesday, August 01, 2012 7:20 PM
To: <openstack [at] lists> (openstack [at] lists)
Subject: [Openstack] Keystone: 'PKI Signed Tokens' lack support for
revocation



I see that support for PKI Signed Tokens has been added to Keystone without
support for token revocation. I tried to raise this issue on the bug
report:



https://bugs.launchpad.net/keystone/+bug/1003962/comments/4



And the review:



https://review.openstack.org/#/c/7754/



I'm curious as to whether anybody shares my concern and if there is a
specific reason why nobody responded to my question as to why revocation is
not required for this new token scheme. Anybody?



Thanks,





Maru
Attachments: smime.p7s (4.74 KB)


ayoung at redhat

Aug 2, 2012, 7:24 PM

Post #7 of 13 (174 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

On 08/01/2012 11:05 PM, Maru Newby wrote:
> Hi Adam,
>
> I apologize if my questions were answered before. I wasn't aware that
> what I perceive as a very serious security concern was openly
> discussed. The arguments against revocation support, as you've
> described them, seem to be:
>
> - it's complicated/messy/expensive to implement and/or execute
> - Kerberos doesn't need it, so why would we?
>
> I'm not sure why either of these arguments would justify the potential
> security hole that a lack of revocation represents, but I suppose a
> 'short enough' token lifespan could minimize that hole. But how short
> a span are you suggesting as being acceptable?
>
> The delay between when a user's access permissions change (whether
> roles, password or even account deactivation) and when the ticket
> reflects that change is my concern. The default in Keystone has been
> 24h, which is clearly too long. Something on the order of 5 minutes
> would be ideal, but then ticket issuance could become the bottleneck.
> Validity that's much longer could be a real problem, though. Maybe
> not at the cloud administration level, but for a given project I can
> imagine someone being fired and their access being revoked. How long
> is an acceptable period for that ticket to still be valid? How much
> damage could be done by someone who should no longer have access to an
> account if their access cannot be revoked, by anyone, at all?


I realize that I had been thinking about the revocation list as
something that needs to be broadcast. This is certainly not the case.

A much better approach would be for the Keystone server to have a list
of revoked tokens exposed in an URL. Then, as service like Glance or
Nova can query the Revocation list on a simple schedule. The time out
would be configurable, of course.

There is a question about what to do if the keystone server cannot be
reached during that interval. Since the current behavior is for
authentication to fail, I suppose we would continue doing that, but
also wait a random amount of time and then requery the Keystone server.

In the future, I would like to make the set of Keystone servers a
configurable list, and the policy for revocation checking should be able
to vary per server: some Keystone servers in a federated approach might
not be accessible. In those cases, it might be necessary for one
Keystone server to proxy the revocation list for another server.

Let me know if this scheme makes sense to you. If so, we can write it
up as an additional blueprint. It should not be that hard to implement.


>
> I'm hearing that you, as the implementer of this feature, don't
> consider the lack of revocation to be an issue. What am I missing?
> Is support for revocation so repugnant that the potential security
> hole is preferable? I can see that from a developer's perspective,
> but I don't understand why someone deploying Keystone wouldn't avoid
> PKI tokens until revocation support became available.
>
> Thanks,
>
>
> Maru
>
>
> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>
>> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>> I see that support for PKI Signed Tokens has been added to Keystone
>>> without support for token revocation. I tried to raise this issue
>>> on the bug report:
>>>
>>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>>
>>> And the review:
>>>
>>> https://review.openstack.org/#/c/7754/
>>>
>>> I'm curious as to whether anybody shares my concern and if there is
>>> a specific reason why nobody responded to my question as to why
>>> revocation is not required for this new token scheme. Anybody?
>>
>> It was discussed back when I wrote the Blueprint. While it is
>> possible to do revocations with PKI, it is expensive and requires a
>> lot of extra checking. Revocation is a policy decision, and the
>> assumption is that people that are going to use PKI tokens are
>> comfortable with out revocation. Kerberos service tickets have the
>> same limitation, and Kerberos has been in deployment that way for
>> close to 25 years.
>>
>> Assuming that PKI ticket lifespan is short enough, revocation should
>> not be required. What will be tricky is to balance the needs of long
>> lived tokens (delayed operations, long running operations) against
>> the needs for reasonable token timeout.
>>
>> PKI Token revocation would look like CRLs in the Certificate world.
>> While they are used, they are clunky. Each time a token gets
>> revoked, a blast message would have to go out to all registered
>> parties informing them of the revocation. Keystone does not yet have
>> a message queue interface, so doing that is prohibitive in the first
>> implementation.
>>
>> Note that users can get disabled, and token chaining will no longer
>> work: you won't be able to use a token to get a new token from Keystone.
>>
>>
>>>
>>> Thanks,
>>>
>>>
>>> Maru
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailing list:https://launchpad.net/~openstack
>>> Post to :openstack [at] lists
>>> Unsubscribe :https://launchpad.net/~openstack
>>> More help :https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> <https://launchpad.net/%7Eopenstack>
>> Post to : openstack [at] lists
>> <mailto:openstack [at] lists>
>> Unsubscribe : https://launchpad.net/~openstack
>> <https://launchpad.net/%7Eopenstack>
>> More help : https://help.launchpad.net/ListHelp
>


mnewby at internap

Aug 2, 2012, 7:38 PM

Post #8 of 13 (172 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

Hi Adam,

I was thinking along the same lines - the revocation list could be accessed via a simple url. It wouldn't even have to be hosted by Keystone, necessarily. For larger clusters where performance might become an issue, what about generating to a static file as needed that is made available via any of the usual web server suspects?

As to whether the keystone server cannot be reached, that could be configurable. Some deployments might prefer permissive failure, others restrictive failure. I can see the case for both options.

+1, also, to the set of Keystone servers being a configurable list, with differential policies for revocation checking.

As to a justification for revocation, my use-case is more Swift (and integrated CDN) than Nova. A rogue user being able to manipulate VMs is one thing, but being able to expose potentially private data to a really wide audience is another. I would rate the damage potential of an object storage compromise as easily as great as application-level compromise.

I would be happy to participate in creating and implementing these ideas. How can I help?

Thanks,


Maru

On 2012-08-02, at 10:24 PM, Adam Young wrote:

> On 08/01/2012 11:05 PM, Maru Newby wrote:
>>
>> Hi Adam,
>>
>> I apologize if my questions were answered before. I wasn't aware that what I perceive as a very serious security concern was openly discussed. The arguments against revocation support, as you've described them, seem to be:
>>
>> - it's complicated/messy/expensive to implement and/or execute
>> - Kerberos doesn't need it, so why would we?
>>
>> I'm not sure why either of these arguments would justify the potential security hole that a lack of revocation represents, but I suppose a 'short enough' token lifespan could minimize that hole. But how short a span are you suggesting as being acceptable?
>>
>> The delay between when a user's access permissions change (whether roles, password or even account deactivation) and when the ticket reflects that change is my concern. The default in Keystone has been 24h, which is clearly too long. Something on the order of 5 minutes would be ideal, but then ticket issuance could become the bottleneck. Validity that's much longer could be a real problem, though. Maybe not at the cloud administration level, but for a given project I can imagine someone being fired and their access being revoked. How long is an acceptable period for that ticket to still be valid? How much damage could be done by someone who should no longer have access to an account if their access cannot be revoked, by anyone, at all?
>
>
> I realize that I had been thinking about the revocation list as something that needs to be broadcast. This is certainly not the case.
>
> A much better approach would be for the Keystone server to have a list of revoked tokens exposed in an URL. Then, as service like Glance or Nova can query the Revocation list on a simple schedule. The time out would be configurable, of course.
>
> There is a question about what to do if the keystone server cannot be reached during that interval. Since the current behavior is for authentication to fail, I suppose we would continue doing that, but also wait a random amount of time and then requery the Keystone server.
>
> In the future, I would like to make the set of Keystone servers a configurable list, and the policy for revocation checking should be able to vary per server: some Keystone servers in a federated approach might not be accessible. In those cases, it might be necessary for one Keystone server to proxy the revocation list for another server.
>
> Let me know if this scheme makes sense to you. If so, we can write it up as an additional blueprint. It should not be that hard to implement.
>
>
>>
>> I'm hearing that you, as the implementer of this feature, don't consider the lack of revocation to be an issue. What am I missing? Is support for revocation so repugnant that the potential security hole is preferable? I can see that from a developer's perspective, but I don't understand why someone deploying Keystone wouldn't avoid PKI tokens until revocation support became available.
>>
>> Thanks,
>>
>>
>> Maru
>>
>>
>>
>> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>>
>>> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>>>
>>>> I see that support for PKI Signed Tokens has been added to Keystone without support for token revocation. I tried to raise this issue on the bug report:
>>>>
>>>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>>>
>>>> And the review:
>>>>
>>>> https://review.openstack.org/#/c/7754/
>>>>
>>>> I'm curious as to whether anybody shares my concern and if there is a specific reason why nobody responded to my question as to why revocation is not required for this new token scheme. Anybody?
>>>
>>> It was discussed back when I wrote the Blueprint. While it is possible to do revocations with PKI, it is expensive and requires a lot of extra checking. Revocation is a policy decision, and the assumption is that people that are going to use PKI tokens are comfortable with out revocation. Kerberos service tickets have the same limitation, and Kerberos has been in deployment that way for close to 25 years.
>>>
>>> Assuming that PKI ticket lifespan is short enough, revocation should not be required. What will be tricky is to balance the needs of long lived tokens (delayed operations, long running operations) against the needs for reasonable token timeout.
>>>
>>> PKI Token revocation would look like CRLs in the Certificate world. While they are used, they are clunky. Each time a token gets revoked, a blast message would have to go out to all registered parties informing them of the revocation. Keystone does not yet have a message queue interface, so doing that is prohibitive in the first implementation.
>>>
>>> Note that users can get disabled, and token chaining will no longer work: you won't be able to use a token to get a new token from Keystone.
>>>
>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>> Maru
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~openstack
>>>> Post to : openstack [at] lists
>>>> Unsubscribe : https://launchpad.net/~openstack
>>>> More help : https://help.launchpad.net/ListHelp
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to : openstack [at] lists
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help : https://help.launchpad.net/ListHelp
>>
>


mnewby at internap

Aug 2, 2012, 7:46 PM

Post #9 of 13 (174 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

Hi Adam,

I apologize if I came across as disrespectful. I was becoming frustrated that what I perceived as a valid concern was seemingly being ignored, but I recognize that there is no excuse for addressing you in a manner that I would not myself wish to be treated. I will do better going forward.

Thanks,


Maru

ps: Thank you for the reminder, Joe!

On 2012-08-02, at 1:56 AM, Joseph Heck wrote:

> Hey Maru,
>
> I think you're putting too many words in Adam's mouth here. First, Adam didnt assert is wasnt valuable, useful, or nessecary - simply that it wasnt in the first cut and not in the list that we agreed was critically essential to an initial implementation. As you noted, its a complex and somewhat tricky issue to get right.
>
> There's always room for more participation to correct the flaws you see in the existing system - the beauty of open source. I would love to see continued work on the signing and revocation work to drive in these features that mean so much to you. I'd be happy to open a blueprint if you can stand behind it, define what you think it required, and commit to the work to implement that revocation mechanism.
>
> Implying negative emotions on Adam's part when he's been one driving the implementation and doing the work is simply inappropriate. Please consider the blueprint route, definition of a viable solution, and work to make it happen instead of name calling and asserting how the developers doing the work are screwing up.
>
> - joe
>
> On Aug 1, 2012, at 8:05 PM, Maru Newby <mnewby [at] internap> wrote:
>> Hi Adam,
>>
>> I apologize if my questions were answered before. I wasn't aware that what I perceive as a very serious security concern was openly discussed. The arguments against revocation support, as you've described them, seem to be:
>>
>> - it's complicated/messy/expensive to implement and/or execute
>> - Kerberos doesn't need it, so why would we?
>>
>> I'm not sure why either of these arguments would justify the potential security hole that a lack of revocation represents, but I suppose a 'short enough' token lifespan could minimize that hole. But how short a span are you suggesting as being acceptable?
>>
>> The delay between when a user's access permissions change (whether roles, password or even account deactivation) and when the ticket reflects that change is my concern. The default in Keystone has been 24h, which is clearly too long. Something on the order of 5 minutes would be ideal, but then ticket issuance could become the bottleneck. Validity that's much longer could be a real problem, though. Maybe not at the cloud administration level, but for a given project I can imagine someone being fired and their access being revoked. How long is an acceptable period for that ticket to still be valid? How much damage could be done by someone who should no longer have access to an account if their access cannot be revoked, by anyone, at all?
>>
>> I'm hearing that you, as the implementer of this feature, don't consider the lack of revocation to be an issue. What am I missing? Is support for revocation so repugnant that the potential security hole is preferable? I can see that from a developer's perspective, but I don't understand why someone deploying Keystone wouldn't avoid PKI tokens until revocation support became available.
>>
>> Thanks,
>>
>>
>> Maru
>>
>>
>>
>> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>>
>>> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>>>
>>>> I see that support for PKI Signed Tokens has been added to Keystone without support for token revocation. I tried to raise this issue on the bug report:
>>>>
>>>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>>>
>>>> And the review:
>>>>
>>>> https://review.openstack.org/#/c/7754/
>>>>
>>>> I'm curious as to whether anybody shares my concern and if there is a specific reason why nobody responded to my question as to why revocation is not required for this new token scheme. Anybody?
>>>
>>> It was discussed back when I wrote the Blueprint. While it is possible to do revocations with PKI, it is expensive and requires a lot of extra checking. Revocation is a policy decision, and the assumption is that people that are going to use PKI tokens are comfortable with out revocation. Kerberos service tickets have the same limitation, and Kerberos has been in deployment that way for close to 25 years.
>>>
>>> Assuming that PKI ticket lifespan is short enough, revocation should not be required. What will be tricky is to balance the needs of long lived tokens (delayed operations, long running operations) against the needs for reasonable token timeout.
>>>
>>> PKI Token revocation would look like CRLs in the Certificate world. While they are used, they are clunky. Each time a token gets revoked, a blast message would have to go out to all registered parties informing them of the revocation. Keystone does not yet have a message queue interface, so doing that is prohibitive in the first implementation.
>>>
>>> Note that users can get disabled, and token chaining will no longer work: you won't be able to use a token to get a new token from Keystone.
>>>
>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>> Maru
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~openstack
>>>> Post to : openstack [at] lists
>>>> Unsubscribe : https://launchpad.net/~openstack
>>>> More help : https://help.launchpad.net/ListHelp
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to : openstack [at] lists
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack [at] lists
>> Unsubscribe : https://launchpad.net/~openstack
>> More help : https://help.launchpad.net/ListHelp


nathanael.i.burton at gmail

Aug 2, 2012, 7:54 PM

Post #10 of 13 (175 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

Adam,

I haven't yet had a chance to review how the new PKI signed tokens is
implemented, but what you're describing sounds quite similar to online
certificate status protocol (OCSP) but for tokens.

Nate
On Aug 2, 2012 10:24 PM, "Adam Young" <ayoung [at] redhat> wrote:

> On 08/01/2012 11:05 PM, Maru Newby wrote:
>
> Hi Adam,
>
> I apologize if my questions were answered before. I wasn't aware that
> what I perceive as a very serious security concern was openly discussed.
> The arguments against revocation support, as you've described them, seem
> to be:
>
> - it's complicated/messy/expensive to implement and/or execute
> - Kerberos doesn't need it, so why would we?
>
> I'm not sure why either of these arguments would justify the potential
> security hole that a lack of revocation represents, but I suppose a 'short
> enough' token lifespan could minimize that hole. But how short a span are
> you suggesting as being acceptable?
>
> The delay between when a user's access permissions change (whether
> roles, password or even account deactivation) and when the ticket reflects
> that change is my concern. The default in Keystone has been 24h, which is
> clearly too long. Something on the order of 5 minutes would be ideal, but
> then ticket issuance could become the bottleneck. Validity that's much
> longer could be a real problem, though. Maybe not at the cloud
> administration level, but for a given project I can imagine someone being
> fired and their access being revoked. How long is an acceptable period for
> that ticket to still be valid? How much damage could be done by someone
> who should no longer have access to an account if their access cannot be
> revoked, by anyone, at all?
>
>
>
> I realize that I had been thinking about the revocation list as something
> that needs to be broadcast. This is certainly not the case.
>
> A much better approach would be for the Keystone server to have a list of
> revoked tokens exposed in an URL. Then, as service like Glance or Nova can
> query the Revocation list on a simple schedule. The time out would be
> configurable, of course.
>
> There is a question about what to do if the keystone server cannot be
> reached during that interval. Since the current behavior is for
> authentication to fail, I suppose we would continue doing that, but also
> wait a random amount of time and then requery the Keystone server.
>
> In the future, I would like to make the set of Keystone servers a
> configurable list, and the policy for revocation checking should be able to
> vary per server: some Keystone servers in a federated approach might not
> be accessible. In those cases, it might be necessary for one Keystone
> server to proxy the revocation list for another server.
>
> Let me know if this scheme makes sense to you. If so, we can write it up
> as an additional blueprint. It should not be that hard to implement.
>
>
>
> I'm hearing that you, as the implementer of this feature, don't consider
> the lack of revocation to be an issue. What am I missing? Is support for
> revocation so repugnant that the potential security hole is preferable? I
> can see that from a developer's perspective, but I don't understand why
> someone deploying Keystone wouldn't avoid PKI tokens until revocation
> support became available.
>
> Thanks,
>
>
> Maru
>
>
>
> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>
> On 08/01/2012 09:19 PM, Maru Newby wrote:
>
> I see that support for PKI Signed Tokens has been added to Keystone
> without support for token revocation. I tried to raise this issue on the
> bug report:
>
> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>
> And the review:
>
> https://review.openstack.org/#/c/7754/
>
> I'm curious as to whether anybody shares my concern and if there is a
> specific reason why nobody responded to my question as to why revocation is
> not required for this new token scheme. Anybody?
>
>
> It was discussed back when I wrote the Blueprint. While it is possible to
> do revocations with PKI, it is expensive and requires a lot of extra
> checking. Revocation is a policy decision, and the assumption is that
> people that are going to use PKI tokens are comfortable with out
> revocation. Kerberos service tickets have the same limitation, and
> Kerberos has been in deployment that way for close to 25 years.
>
> Assuming that PKI ticket lifespan is short enough, revocation should not
> be required. What will be tricky is to balance the needs of long lived
> tokens (delayed operations, long running operations) against the needs for
> reasonable token timeout.
>
> PKI Token revocation would look like CRLs in the Certificate world. While
> they are used, they are clunky. Each time a token gets revoked, a blast
> message would have to go out to all registered parties informing them of
> the revocation. Keystone does not yet have a message queue interface, so
> doing that is prohibitive in the first implementation.
>
> Note that users can get disabled, and token chaining will no longer work:
> you won't be able to use a token to get a new token from Keystone.
>
>
>
> Thanks,
>
>
> Maru
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>


ayoung at redhat

Aug 3, 2012, 7:55 AM

Post #11 of 13 (169 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

On 08/02/2012 10:54 PM, Nathanael Burton wrote:
>
> Adam,
>
> I haven't yet had a chance to review how the new PKI signed tokens is
> implemented, but what you're describing sounds quite similar to online
> certificate status protocol (OCSP) but for tokens.
>

Yes, I don't really have new idea here, just reimplementaiton of ideas
from other projects.

> Nate
>
> On Aug 2, 2012 10:24 PM, "Adam Young" <ayoung [at] redhat
> <mailto:ayoung [at] redhat>> wrote:
>
> On 08/01/2012 11:05 PM, Maru Newby wrote:
>> Hi Adam,
>>
>> I apologize if my questions were answered before. I wasn't aware
>> that what I perceive as a very serious security concern was
>> openly discussed. The arguments against revocation support, as
>> you've described them, seem to be:
>>
>> - it's complicated/messy/expensive to implement and/or execute
>> - Kerberos doesn't need it, so why would we?
>>
>> I'm not sure why either of these arguments would justify the
>> potential security hole that a lack of revocation represents, but
>> I suppose a 'short enough' token lifespan could minimize that
>> hole. But how short a span are you suggesting as being acceptable?
>>
>> The delay between when a user's access permissions change
>> (whether roles, password or even account deactivation) and when
>> the ticket reflects that change is my concern. The default in
>> Keystone has been 24h, which is clearly too long. Something on
>> the order of 5 minutes would be ideal, but then ticket issuance
>> could become the bottleneck. Validity that's much longer could
>> be a real problem, though. Maybe not at the cloud administration
>> level, but for a given project I can imagine someone being fired
>> and their access being revoked. How long is an acceptable period
>> for that ticket to still be valid? How much damage could be done
>> by someone who should no longer have access to an account if
>> their access cannot be revoked, by anyone, at all?
>
>
> I realize that I had been thinking about the revocation list as
> something that needs to be broadcast. This is certainly not the case.
>
> A much better approach would be for the Keystone server to have a
> list of revoked tokens exposed in an URL. Then, as service like
> Glance or Nova can query the Revocation list on a simple
> schedule. The time out would be configurable, of course.
>
> There is a question about what to do if the keystone server cannot
> be reached during that interval. Since the current behavior is
> for authentication to fail, I suppose we would continue doing
> that, but also wait a random amount of time and then requery the
> Keystone server.
>
> In the future, I would like to make the set of Keystone servers a
> configurable list, and the policy for revocation checking should
> be able to vary per server: some Keystone servers in a federated
> approach might not be accessible. In those cases, it might be
> necessary for one Keystone server to proxy the revocation list for
> another server.
>
> Let me know if this scheme makes sense to you. If so, we can
> write it up as an additional blueprint. It should not be that
> hard to implement.
>
>
>>
>> I'm hearing that you, as the implementer of this feature, don't
>> consider the lack of revocation to be an issue. What am I
>> missing? Is support for revocation so repugnant that the
>> potential security hole is preferable? I can see that from a
>> developer's perspective, but I don't understand why someone
>> deploying Keystone wouldn't avoid PKI tokens until revocation
>> support became available.
>>
>> Thanks,
>>
>>
>> Maru
>>
>>
>> On 2012-08-01, at 9:47 PM, Adam Young wrote:
>>
>>> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>>> I see that support for PKI Signed Tokens has been added to
>>>> Keystone without support for token revocation. I tried to
>>>> raise this issue on the bug report:
>>>>
>>>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>>>
>>>> And the review:
>>>>
>>>> https://review.openstack.org/#/c/7754/
>>>>
>>>> I'm curious as to whether anybody shares my concern and if
>>>> there is a specific reason why nobody responded to my question
>>>> as to why revocation is not required for this new token scheme.
>>>> Anybody?
>>>
>>> It was discussed back when I wrote the Blueprint. While it is
>>> possible to do revocations with PKI, it is expensive and
>>> requires a lot of extra checking. Revocation is a policy
>>> decision, and the assumption is that people that are going to
>>> use PKI tokens are comfortable with out revocation. Kerberos
>>> service tickets have the same limitation, and Kerberos has been
>>> in deployment that way for close to 25 years.
>>>
>>> Assuming that PKI ticket lifespan is short enough, revocation
>>> should not be required. What will be tricky is to balance the
>>> needs of long lived tokens (delayed operations, long running
>>> operations) against the needs for reasonable token timeout.
>>>
>>> PKI Token revocation would look like CRLs in the Certificate
>>> world. While they are used, they are clunky. Each time a token
>>> gets revoked, a blast message would have to go out to all
>>> registered parties informing them of the revocation. Keystone
>>> does not yet have a message queue interface, so doing that is
>>> prohibitive in the first implementation.
>>>
>>> Note that users can get disabled, and token chaining will no
>>> longer work: you won't be able to use a token to get a new
>>> token from Keystone.
>>>
>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>> Maru
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list:https://launchpad.net/~openstack <https://launchpad.net/%7Eopenstack>
>>>> Post to :openstack [at] lists <mailto:openstack [at] lists>
>>>> Unsubscribe :https://launchpad.net/~openstack <https://launchpad.net/%7Eopenstack>
>>>> More help :https://help.launchpad.net/ListHelp
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> <https://launchpad.net/%7Eopenstack>
>>> Post to : openstack [at] lists
>>> <mailto:openstack [at] lists>
>>> Unsubscribe : https://launchpad.net/~openstack
>>> <https://launchpad.net/%7Eopenstack>
>>> More help : https://help.launchpad.net/ListHelp
>>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> <https://launchpad.net/%7Eopenstack>
> Post to : openstack [at] lists
> <mailto:openstack [at] lists>
> Unsubscribe : https://launchpad.net/~openstack
> <https://launchpad.net/%7Eopenstack>
> More help : https://help.launchpad.net/ListHelp
>


ayoung at redhat

Aug 7, 2012, 7:09 AM

Post #12 of 13 (153 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

On 08/01/2012 09:19 PM, Maru Newby wrote:
> I see that support for PKI Signed Tokens has been added to Keystone
> without support for token revocation. I tried to raise this issue on
> the bug report:
>
> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>
> And the review:
>
> https://review.openstack.org/#/c/7754/
>
> I'm curious as to whether anybody shares my concern and if there is a
> specific reason why nobody responded to my question as to why
> revocation is not required for this new token scheme. Anybody?

I have written up a blueprint for PKI token revocation. Please provide
feedback.


https://blueprints.launchpad.net/keystone/+spec/pki-revoke

>
> Thanks,
>
>
> Maru
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp


mnewby at internap

Aug 9, 2012, 6:24 AM

Post #13 of 13 (142 views)
Permalink
Re: Keystone: 'PKI Signed Tokens' lack support for revocation [In reply to]

Hi Adam,

The blueprint as revised to address Joe's comments looks good to me - nice work. I especially like how the middleware is intended to cache the revocation list for a configurable amount of time - it mirrors how token caching already works.

Cheers,


Maru

On 2012-08-07, at 10:09 AM, Adam Young wrote:

> On 08/01/2012 09:19 PM, Maru Newby wrote:
>>
>> I see that support for PKI Signed Tokens has been added to Keystone without support for token revocation. I tried to raise this issue on the bug report:
>>
>> https://bugs.launchpad.net/keystone/+bug/1003962/comments/4
>>
>> And the review:
>>
>> https://review.openstack.org/#/c/7754/
>>
>> I'm curious as to whether anybody shares my concern and if there is a specific reason why nobody responded to my question as to why revocation is not required for this new token scheme. Anybody?
>
> I have written up a blueprint for PKI token revocation. Please provide feedback.
>
>
> https://blueprints.launchpad.net/keystone/+spec/pki-revoke
>
>>
>> Thanks,
>>
>>
>> Maru
>>
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack [at] lists
>> Unsubscribe : https://launchpad.net/~openstack
>> More help : https://help.launchpad.net/ListHelp
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp

OpenStack dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.