Re: [Zope3-dev] Certification: Support platforms different from Linux?

2005-12-16 Thread Christian Theune
Hi,

Am Mittwoch, den 14.12.2005, 10:47 -0500 schrieb Jim Fulton:
 Yes.  The customers of ours most likely to care about this
 use Windows.  I would say in general, for better or worse, the decision
 makers who would care about CC would also care about Windows.  I suspect that
 the decision makers who care about linux would me likely to understand
 that the platform doesn't matter that much and that certification for Windows
 should make them feel warm and fuzzy about their Linux installations.

I'm including Windows and Linux for now. I wonder whether we should (for
ourselves) guess which version we might want to stick to. Linux might be
less of a problem as Windows. Would it be Windows 2000 Server or
Windows 2003 Server?

BTW: I just read that the current Windows line (2k3 and XP IIRC) was
certified for CC lately.

Christian

-- 
gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
fax +49 3496 30 99 118 - zope and plone consulting and development


signature.asc
Description: This is a digitally signed message part
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: [Zope3-checkins] SVN: Zope3/trunk/src/zope/testbrowser/ fix bug caused be impedance mis-match between Mechanize and zope.testbrowser

2005-12-16 Thread Chris Withers

Benji York wrote:
Two of the three lines of _quote are comments about why the method 
exists, is there something that you'd like added?  Perhaps it shouldn't 
be a method at all, but refactored to be inline (with comments).


Inline would be the way I'd go, as it'll stop people (mis)using the 
method in future...


That, specifically, wouldn't work, but no matter; the RFC is pretty 
clear that there can be no more than 2 space characters in the first 
line of the request, so I don't really think anything different should 
be done.


Yup, glad someone has the patience to wade through RFC's :-)

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Certification: Supporting Residual Information Protection in Zope 3

2005-12-16 Thread Christian Theune
Hi,

within the certification we once created a list (drawn from the CC
catalogue) of functionality we want to support.

One of those is called Residual Information Protection (RIP)

The meaning of RIP is that when you delete security attributes (roles,
users, groups, permission grants/denials) you want to make sure that the
overall consistency of your security attributes is not affected.

Example:

   Bob is a user of your site with the login name bob. He was granted
   permissions all over the place, for example in folder /asdf he has
   the permission perm.ModifyObjects.

   Bob doesn't want to work with you anymore and tells you so. You
   delete the user account bob from the system.

   2 years later.

   Another Bob arrives and you assign him the same username. Suddenly he
   has all the permissions that the original bob had.

This is a simple example of what can happen when you only partially
delete security attributes. And it is a known problem with todays Zope 2
security.

Two questions arise for me now, as I face implementing the effective
removal of residual data:

- Does anybody know/understand whether this will heavily collide with
  undoing transactions or not?

- Is there an efficient way on the application-level in Zope 3 to
  iterate over objects out of the database? (There is something in the
  ZODB IIRC that can support iterating over objects of the same class)

  Otherwise this function is likely to become a performance killer, as
  I'd have to go all over the place to remove stuff.

Cheers,
Christian

-- 
gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
fax +49 3496 30 99 118 - zope and plone consulting and development


signature.asc
Description: This is a digitally signed message part
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



RE: [Zope3-dev] Certification: Supporting Residual InformationProtection in Zope 3

2005-12-16 Thread Roger Ineichen
Hi Christian

interesting question!
This is really a missing part in Zope3.

 Hi,
 
 within the certification we once created a list (drawn from the CC
 catalogue) of functionality we want to support.
 
 One of those is called Residual Information Protection (RIP)
 
 The meaning of RIP is that when you delete security attributes (roles,
 users, groups, permission grants/denials) you want to make 
 sure that the
 overall consistency of your security attributes is not affected.
 
 Example:
 
Bob is a user of your site with the login name bob. He 
 was granted
permissions all over the place, for example in folder 
 /asdf he has
the permission perm.ModifyObjects.
 
Bob doesn't want to work with you anymore and tells you so. You
delete the user account bob from the system.
 
2 years later.
 
Another Bob arrives and you assign him the same username. 
 Suddenly he
has all the permissions that the original bob had.
 
 This is a simple example of what can happen when you only partially
 delete security attributes. And it is a known problem with 
 todays Zope 2
 security.

Yes, that is excatly what we d right now. If we remova a principal
we don't delete the permssion/grant imformation in the annotation.

I guess we have to add a generic subscriber for this and cleanup all
grant information in the object's annotation.

 Two questions arise for me now, as I face implementing the effective
 removal of residual data:
 
 - Does anybody know/understand whether this will heavily collide with
   undoing transactions or not?

You mean if a principal get added back via the undoing transaction
or if there is a meachnism to not allow to undo principal removal?

 - Is there an efficient way on the application-level in Zope 3 to
   iterate over objects out of the database? (There is something in the
   ZODB IIRC that can support iterating over objects of the same class)

Do you mean if sombody uses a SQL DB backend or something like that?
If so, I guess they have to provide the sublocation implementation as well.
I have no idea if this is supported in SQL implementation like the SQLObject

etc.

   Otherwise this function is likely to become a performance killer, as
   I'd have to go all over the place to remove stuff.

We do this everytime we delete a object. This is done with subscribers 
and dispatching events to sublocations if a ObjectRemoveEvent get fired. 

The only part we have to add is a subscriber which will remove grant 
information for sublocations. We have to use a little hook for this
implementation since the content data structure isn't directly a child
of the IAuthentication utility.

Hm, perhaps we have to add a special event inherited from ObjectRemoveEvent
and dispatch this event to sublocations of the ISite reather then to the 
sublocations of the IAuthentication. A different event will make sure that
we not directly dispatch the original ObjetRemoveEvent to the content
objects
of ISite.

Are I'm correct or did I miss something?

Regards
Roger Ineichen

 Cheers,
 Christian
 
 -- 
 gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
 www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
 fax +49 3496 30 99 118 - zope and plone consulting and development
 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



RE: [Zope3-dev] Certification: Supporting Residual InformationProtection in Zope 3

2005-12-16 Thread Christian Theune
Hi,

Am Freitag, den 16.12.2005, 11:14 +0100 schrieb Roger Ineichen:
  This is a simple example of what can happen when you only partially
  delete security attributes. And it is a known problem with 
  todays Zope 2
  security.
 
 Yes, that is excatly what we d right now. If we remova a principal
 we don't delete the permssion/grant imformation in the annotation.

That's what my understanding about the current situation was as well.

 I guess we have to add a generic subscriber for this and cleanup all
 grant information in the object's annotation.

That leads me to the question of local event subscribers ... Do they
exist?

  Two questions arise for me now, as I face implementing the effective
  removal of residual data:
  
  - Does anybody know/understand whether this will heavily collide with
undoing transactions or not?
 
 You mean if a principal get added back via the undoing transaction
 or if there is a meachnism to not allow to undo principal removal?

I mean to make sure that the set of data that can be retrieved by
undoing something doesn't make the system inconsistent.

Example:

   - bob still exists.

   - bob is granted the permission perm.Modify on the object
/asdf/b.

   - b gets deleted.

   - bob gets deleted, RIP comes in and removes all referenced
permission grants

   - The deletion of /asdf/b gets undone. 

   - The user bob is re-added.

This could be handled by making sure that when something is undone, all
the security attributes are valid.

But I can give you an example that is even worse:

- bob exists and is granted perm.Modify an the object /asdf/b

- /asdf/b is deleted

- bob is deleted and RIP is effective

- bob get's readded

- The deletion of /asdf/b gets undone.

Now. At the point of making the deletion of /asdf/b undone will not be
able to know that bob is a different bob then the one that existed
before deleting it. :(

Looks like we would have to introduce (globally) unique identifiers for
users that are non-repeatable.


  - Is there an efficient way on the application-level in Zope 3 to
iterate over objects out of the database? (There is something in the
ZODB IIRC that can support iterating over objects of the same class)
 
 Do you mean if sombody uses a SQL DB backend or something like that?
 If so, I guess they have to provide the sublocation implementation as well.
 I have no idea if this is supported in SQL implementation like the SQLObject

Nope. I thought about something to use if local event subscribers don't
exist.

Otherwise this function is likely to become a performance killer, as
I'd have to go all over the place to remove stuff.
 
 We do this everytime we delete a object. This is done with subscribers 
 and dispatching events to sublocations if a ObjectRemoveEvent get fired. 
 
 The only part we have to add is a subscriber which will remove grant 
 information for sublocations. We have to use a little hook for this
 implementation since the content data structure isn't directly a child
 of the IAuthentication utility.
 
 Hm, perhaps we have to add a special event inherited from ObjectRemoveEvent
 and dispatch this event to sublocations of the ISite reather then to the 
 sublocations of the IAuthentication. A different event will make sure that
 we not directly dispatch the original ObjetRemoveEvent to the content
 objects
 of ISite.
 
 Are I'm correct or did I miss something?

Sounds like you understood my request very well. Regarding the
implementation, I might need a small hint about the (sub-)location
issues ...

Cheers,
Christian

-- 
gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
fax +49 3496 30 99 118 - zope and plone consulting and development


signature.asc
Description: This is a digitally signed message part
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: View lookup changes in Zope 3.2?

2005-12-16 Thread Martijn Faassen

Jeff Shell wrote:

On 12/15/05, Martijn Faassen [EMAIL PROTECTED] wrote:

[snip]

One troublesome scenario I can imagine is that if I make my total
skin in Zope 3.n, it works, and then Zope 3.n + 1 is released and
it has a more specific view registered for some content object that
I'm using. I was relying on having skinned the more general
interface, but suddenly in Zope 3.n + 1 I get the Zope 3 view.
That'd be bad.

So, I'm not sure whether or not this ability is compromised in
practice with this bugfix...


If it is compromised, it may be bad design on your part? 
That's the decision that I came to.


If it's truly the case that this is due to bad design, then that's good 
to hear. You obviously have more experience with this problem than I do, 
I'm just leaping into this thread with vague concerns.


[snip details]


I'm still unsure about how I feel about this situation in my gut. The
 Zope 3.1 way felt strangely intuitive, but I recognize why it was 
incorrect and why the 3.2 implementation does what it does.

[snip]
For us at Bottlerocket, these core objects have bitten us in 
the past. So for me - and I'm not saying it applies for you or anyone

 else - this change to the 'correct' behavior for multi-adapter
lookup has highlighted some design flaws in our code and way of
thinking. If this issue didn't show itself now, a different issue may
have shown up in the future.


Okay, we'll see whether this turns up any flaws in the DocumentLibrary 
in this department; we haven't tried it with Zope 3.2 yet. It's good to 
hear your conclusion that this is essentially the right behavior, though 
 the counterintuitiveness


Thanks for the debug module, I'll tuck it away somewhere! Might be 
useful to put this somewhere under svn.zope.org or something, by the way.


Regards,

Martijn

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual InformationProtection in Zope 3

2005-12-16 Thread Martijn Faassen

Roger Ineichen wrote:
[Christian]

 Otherwise this function is likely to become a performance killer, as
 I'd have to go all over the place to remove stuff.


We do this everytime we delete a object. This is done with subscribers 
and dispatching events to sublocations if a ObjectRemoveEvent get fired. 


Wouldn't this still be a performance killer? I.e. if a user gets removed 
in a large site, wouldn't an event need to be sent to all objects that 
have security annotations in the tree? And at the end, a large 
transaction, or a lot of transactions, would need to be committed. From 
my experience with Zope 2, this sounds like a potentially very expensive 
operation, right?


Regards,

Martijn
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Heads up, adapter-registry refactoring (was Re: [Zope3-dev] Re: View lookup changes in Zope 3.2?)

2005-12-16 Thread Jim Fulton


I'm hoping to redo the internal details of a
adapter registries in the next release cycle, along the lines of
work done in the jim-adapter-redesign branch.  This redesign has
the following goals:

- Bring the adapter-lookup algorithm closer to the somewhat familiar
  method-lookup algorithm for Python new-style classes.  Of course,
  this is extended (in an ovious way) to deal with multiple dispatch.

  This new algorithm should give the same results as the current
  mechanism.  In fact, I delayed working on the multi-adapter fix,
  hoping that I would achiev the same result with the new lookup
  mechansim.

- Provide an equivalent to super for adapter lookup.  If an adapter
  overrides another adapter, it should be possible for the overriding
  adapter to find and use the adapter it overrides.

- Provide greater performance.

I had originally hoped to achive the last goal without use of any
caching. (The current algorithim is based on very extensive caching.)
Alas, without caching the new algorthm is too slow, and much slower
than the existing alsgorthm.  I am hopeful that with a much simpler and
less expensive cache in front of the new algorthm, I'll be able to meet
current performance for single-adapter lookup and greatly improve
performance for multi-adapter lookup.   I expect to be able to report
results in January.

Obviously, this refactoring will render obsolete tools writted
against the current implementation.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual InformationProtection in Zope 3

2005-12-16 Thread Christian Theune
Am Freitag, den 16.12.2005, 12:52 +0100 schrieb Martijn Faassen:
 Roger Ineichen wrote:
 [Christian]
   Otherwise this function is likely to become a performance killer, as
   I'd have to go all over the place to remove stuff.
  
  We do this everytime we delete a object. This is done with subscribers 
  and dispatching events to sublocations if a ObjectRemoveEvent get fired. 
 
 Wouldn't this still be a performance killer? I.e. if a user gets removed 
 in a large site, wouldn't an event need to be sent to all objects that 
 have security annotations in the tree? And at the end, a large 
 transaction, or a lot of transactions, would need to be committed. From 
 my experience with Zope 2, this sounds like a potentially very expensive 
 operation, right?

Right.

-- 
gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
fax +49 3496 30 99 118 - zope and plone consulting and development


signature.asc
Description: This is a digitally signed message part
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



RE: [Zope3-dev] Certification: SupportingResidual InformationProtection in Zope 3

2005-12-16 Thread Roger Ineichen
Hi Martijn

[...]
 [Christian]
   Otherwise this function is likely to become a performance 
 killer, as
   I'd have to go all over the place to remove stuff.
  
  We do this everytime we delete a object. This is done with 
 subscribers 
  and dispatching events to sublocations if a 
 ObjectRemoveEvent get fired. 
 
 Wouldn't this still be a performance killer? I.e. if a user 
 gets removed 
 in a large site, wouldn't an event need to be sent to all 
 objects that 
 have security annotations in the tree? And at the end, a large 
 transaction, or a lot of transactions, would need to be 
 committed. From 
 my experience with Zope 2, this sounds like a potentially 
 very expensive 
 operation, right?

Yes you are right. Do you have another idea?

How about to add a concept like intid? We could add objects
where contain annotated security info to a utility. This 
allows us to get the right objects from this utility and avoid
traversing a structure. 

Regards
Roger Ineichen

 Regards,
 
 Martijn
 ___
 Zope3-dev mailing list
 Zope3-dev@zope.org
 Unsub: 
 http://mail.zope.org/mailman/options/zope3-dev/dev%40projekt01.ch
 
 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual Information Protection in Zope 3

2005-12-16 Thread Jim Fulton

Christian Theune wrote:

Hi,

within the certification we once created a list (drawn from the CC
catalogue) of functionality we want to support.

One of those is called Residual Information Protection (RIP)

The meaning of RIP is that when you delete security attributes (roles,
users, groups, permission grants/denials) you want to make sure that the
overall consistency of your security attributes is not affected.

Example:

   Bob is a user of your site with the login name bob. He was granted
   permissions all over the place, for example in folder /asdf he has
   the permission perm.ModifyObjects.

   Bob doesn't want to work with you anymore and tells you so. You
   delete the user account bob from the system.

   2 years later.

   Another Bob arrives and you assign him the same username. Suddenly he
   has all the permissions that the original bob had.

This is a simple example of what can happen when you only partially
delete security attributes. And it is a known problem with todays Zope 2
security.


This is only a problem if username === user id.  In both Zope 2 and
Zope 3, these are distinct, although this isn't widely recognized or
leveraged in Zope 2.  I don't think it is necessary to remove all
grants to an old user *id* as long as ids are never reused.  I'd say it
might even be useful to keep the old grants, at least for some period,
for auditing purposed.

If we *do* need to be able to remove all grants for a deleted user
when we remove a user, then we need to provide an authorization system
that makes this possible.


Two questions arise for me now, as I face implementing the effective
removal of residual data:

- Does anybody know/understand whether this will heavily collide with
  undoing transactions or not?


It would.  The Undo feature should not be included in the CC certified
version, or, perhaps undo should only be exposed to adminstrators as
a break glass sort of feature.  The reason is that, for current
versions of ZODB, undo cannot maintain transactional integrity.


- Is there an efficient way on the application-level in Zope 3 to
  iterate over objects out of the database? (There is something in the
  ZODB IIRC that can support iterating over objects of the same class)

  Otherwise this function is likely to become a performance killer, as
  I'd have to go all over the place to remove stuff.


By definition, there is no efficient way to iterate over all objects
in a database, any database, unless the database is small.  If we
need to be able to do this, we should design support into the
authorization system that we certify.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual InformationProtection in Zope 3

2005-12-16 Thread Jim Fulton

Christian Theune wrote:
...


I guess we have to add a generic subscriber for this and cleanup all
grant information in the object's annotation.



That leads me to the question of local event subscribers ... Do they
exist?


No. I don't see why you need them here. You don't need a local subscriber
to provide a local effect.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual Information Protection in Zope 3

2005-12-16 Thread Christian Theune
Hi,

Am Freitag, den 16.12.2005, 07:16 -0500 schrieb Jim Fulton:
 This is only a problem if username === user id.  In both Zope 2 and
 Zope 3, these are distinct, although this isn't widely recognized or
 leveraged in Zope 2.  I don't think it is necessary to remove all
 grants to an old user *id* as long as ids are never reused.  I'd say it
 might even be useful to keep the old grants, at least for some period,
 for auditing purposed.
 
 If we *do* need to be able to remove all grants for a deleted user
 when we remove a user, then we need to provide an authorization system
 that makes this possible.

I think if we can guarantee never to reuse a user id, provide a tool for
doing RIP and we do not provide undo we are fine.

 By definition, there is no efficient way to iterate over all objects
 in a database, any database, unless the database is small.  If we
 need to be able to do this, we should design support into the
 authorization system that we certify.

Agreed. This would mean that the authorization system (which is policy
dependant if I understand it correctly) will have to maintain data
structures that allow efficient handling for those tasks. Right?

Christian

-- 
gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
fax +49 3496 30 99 118 - zope and plone consulting and development


signature.asc
Description: This is a digitally signed message part
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual Information Protection in Zope 3

2005-12-16 Thread Jim Fulton

Jim Fulton wrote:
...
 If we

need to be able to do this, we should design support into the
authorization system that we certify.


I'll note that this implies that the grants are stored centrally.
There are a number of reasons why this might be beneficial.

It's interesting to note that on Unix systems, it is not too terribly
expensive (though not cheap) to change security information on a large
tree. (I'd guess the same is true on Windows, probably for similar
reasons.) This is because the information is stored in inodes, rather
than in the files themselves.  The actual files don't need to be open
and read.  In our current annotation-based approach, we have to load
an object to get it's grant annotation.

A pet project of mine that I'm dying to work on, but fear I won't have
time for, is to add optional support for managing security information
in ZODB.  A storage that supports object security would maintain extra
information, accessable as additional persistent objects, that maintain
lists of principal grants for each object.  A grant for a principal
for an object would be a triple of boolean values for read, write, and
ownership, where you would need the ownership to change the grants.
Of course, the storage would use this information to mediate access.
The main goal of this would be to make ZEO a much more viable protocol
for client-server applications.

I also think that the flexible permission scheme I introduced to Zope
was a huge mistake.  A security system that people don't understand
is insecure.  A corrolary of this is that complex security systems are
not secure.  I wish I knew more (had time to read literature) about
usable security systems.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual Information Protection in Zope 3

2005-12-16 Thread Christian Theune
Hi,

Am Freitag, den 16.12.2005, 07:49 -0500 schrieb Jim Fulton:
 Christian Theune wrote:
  I think if we can guarantee never to reuse a user id, provide a tool for
  doing RIP and we do not provide undo we are fine.
 
 Only if we manage the user ids.  We often get principal ids from outside
 sources.  In fact, we usually do this in production.  In the case when
 we're using an external principal soure, we also don't autmatically
 know when the principal is removed.
 
 Also, current principal-management facilities in Zope 3 allow managers to
 pick ids.  We probably would need to curtail this or at least prevent
 reuse.
 
 It's probably not wise to rely on this.

That sounds like for a usable certified system RIP might be out of
scope? Hmm. Hope not.

 Right. The security policy is part of the authorization system.
 The authorization system, or at least a CC-complient authorization
 system should probably grow a principal-removal API.

Well. If that would be an authorization system that would not be helpful
in everyday business, then growing one only for CC would be beside the
point of the certification to assure people that the system they use on
a daily basis matches their security expectations.

Christian

-- 
gocept gmbh  co. kg - schalaunische str. 6 - 06366 koethen - germany
www.gocept.com - [EMAIL PROTECTED] - phone +49 3496 30 99 112 -
fax +49 3496 30 99 118 - zope and plone consulting and development


signature.asc
Description: This is a digitally signed message part
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Supporting Residual Information Protection in Zope 3

2005-12-16 Thread Jim Fulton

Christian Theune wrote:

Hi,

Am Freitag, den 16.12.2005, 07:49 -0500 schrieb Jim Fulton:


Christian Theune wrote:


I think if we can guarantee never to reuse a user id, provide a tool for
doing RIP and we do not provide undo we are fine.


Only if we manage the user ids.  We often get principal ids from outside
sources.  In fact, we usually do this in production.  In the case when
we're using an external principal soure, we also don't autmatically
know when the principal is removed.

Also, current principal-management facilities in Zope 3 allow managers to
pick ids.  We probably would need to curtail this or at least prevent
reuse.

It's probably not wise to rely on this.



That sounds like for a usable certified system RIP might be out of
scope? Hmm. Hope not.


There could be a UI for removing principal grants that a manager
could use to remove grants after a principal has been removed
externally.


Right. The security policy is part of the authorization system.
The authorization system, or at least a CC-complient authorization
system should probably grow a principal-removal API.



Well. If that would be an authorization system that would not be helpful
in everyday business, then growing one only for CC would be beside the
point of the certification to assure people that the system they use on
a daily basis matches their security expectations.


I'm not conviced that this is an every-day requirement.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: SupportingResidual InformationProtection in Zope 3

2005-12-16 Thread Martijn Faassen

Roger Ineichen wrote:

[Martijn goes into why this might be slow]


Yes you are right. Do you have another idea?


A fairly drastic one, unfortunately -- catalog all role and permission 
assignments and run a query as soon a user is removed.


Hm, perhaps another idea would involve the timestamp of creation in the 
userid somewhere, to make the ids unique. Unfortunately I don't see how 
that would work with external authentication systems such as LDAP, as we 
don't know when userids are created and removed there.


Regards,

Martijn
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: Certification: SupportingResidual InformationProtection in Zope 3

2005-12-16 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Martijn Faassen wrote:
 Roger Ineichen wrote:
 
 [Martijn goes into why this might be slow]
 
 Yes you are right. Do you have another idea?
 
 
 A fairly drastic one, unfortunately -- catalog all role and permission
 assignments and run a query as soon a user is removed.

CMF does this for local roles, and Jim is already on record as disliking
it.

I am pleased with the *result*, which also allows the catalog to filter
normal content results efficiently based on the user's roles (the
original eason for the index).  OTOH, the *implementation* is grotty.

 Hm, perhaps another idea would involve the timestamp of creation in the
 userid somewhere, to make the ids unique. Unfortunately I don't see how
 that would work with external authentication systems such as LDAP, as we
 don't know when userids are created and removed there.

The actual ID used by LDAP is a DSN.  Perhaps the authorization system
could map the DSNs to internally-generated integer ID, which would be
the only value actually stored in grant records.


Tres.
- --
===
Tres Seaver  +1 202-558-7113  [EMAIL PROTECTED]
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDotJc+gerLs4ltQ4RAscQAJ9pNpD2Dce+3vxbOKOu3jeyi4OcZgCg08Ss
uLAalHjZ6RTaj32kmTnJLrw=
=J37w
-END PGP SIGNATURE-

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Certification: SupportingResidual InformationProtection in Zope 3

2005-12-16 Thread Jim Fulton

Tres Seaver wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Martijn Faassen wrote:


Roger Ineichen wrote:

[Martijn goes into why this might be slow]



Yes you are right. Do you have another idea?



A fairly drastic one, unfortunately -- catalog all role and permission
assignments and run a query as soon a user is removed.



CMF does this for local roles, and Jim is already on record as disliking
it.

I am pleased with the *result*, which also allows the catalog to filter
normal content results efficiently based on the user's roles (the
original eason for the index).  OTOH, the *implementation* is grotty.


I don't like the use case very much, but accept that it is valid.
You convinced me one day that this doesn't have to be so bad, especially
if most grants are to groups/roles.  (I've abandoned using roles as a principal
grouping mechanism, but that's a different topic.)

In any case, that's a different data structure than what we need here.

Here, I think the best solution is for the authorization system to store
grants in a centralized data structure of it's own.  This data structure
would be optimized for it's own purposes, not for document searching.
These two use cases want different data structures.




Hm, perhaps another idea would involve the timestamp of creation in the
userid somewhere, to make the ids unique. Unfortunately I don't see how
that would work with external authentication systems such as LDAP, as we
don't know when userids are created and removed there.



The actual ID used by LDAP is a DSN.  Perhaps the authorization system
could map the DSNs to internally-generated integer ID, which would be
the only value actually stored in grant records.


Isn't a dsn a string?  That's all we require of a principal id. What
advantage would an integer provide?

In any case, we are left with a more basic problems:

- Someone could be removed from an external user source without
  Zope being aware of it.

- An external system could remove a principal and reused the
  id for a new principal -- again without Zope being aware of it.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in zope.testing trunk Windows 2000 zc-bbwin

2005-12-16 Thread buildbot
The Buildbot has detected a failed build of zope.testing trunk  Windows 2000 
zc-bbwin.

Buildbot URL: http://buildbot.zope.org/

Build Reason: changes
Build Source Stamp: 2258
Blamelist: andreasjung,ctheune,hdima,jim,jinty,jmo,sidnei,tim_one,tseaver,yuppie

BUILD FAILED: failed test

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in Zope3 branches Zope-3.1 2.4 Windows 2000 zc-bbwin

2005-12-16 Thread buildbot
The Buildbot has detected a failed build of Zope3 branches Zope-3.1 2.4 Windows 
2000 zc-bbwin.

Buildbot URL: http://buildbot.zope.org/

Build Reason: The web-page 'force build' button was pressed by '': 

Build Source Stamp: None
Blamelist: 

BUILD FAILED: failed failed slave lost

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] buildbot failure in Zope3 trunk 2.4 Linux zc-buildbot

2005-12-16 Thread Tim Peters
[Tim Peters, on the testRunIgnoresParentSignals failure]
 
 That's definitely the problem here, and is easy to reproduce by
 inserting a short time.sleep() inside os.rmtree():

Should have said shutil.rmtree(); anyway:

 I'll try to fix it later today if I can make time, and nobody else
 does first ...

I did that yesterday, and ran the test hundreds of times after w/o
problems.  Yesterday and today, in spare moments I stitched rev 40792
of zdaemon into:

Zope trunk
Zope 2.9 branch
Zope3 trunk
Zope3 3.2 branch

I _ think_ that covers all the places that need it for now.  If anyone
knows of another place (I have lazier plans to update ZODB ;-)), be my
guest.
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in Zope3 branches 3.2 2.4 Linux remy

2005-12-16 Thread buildbot
The Buildbot has detected a failed build of Zope3 branches 3.2 2.4 Linux remy.

Buildbot URL: http://buildbot.zope.org/

Build Reason: changes
Build Source Stamp: 2277
Blamelist: tim_one

BUILD FAILED: failed test

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in Zope3 branches 3.2 2.4 Linux remy

2005-12-16 Thread buildbot
The Buildbot has detected a failed build of Zope3 branches 3.2 2.4 Linux remy.

Buildbot URL: http://buildbot.zope.org/

Build Reason: changes
Build Source Stamp: 2278
Blamelist: jim

BUILD FAILED: failed test

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



zope.i18n.format pytz usage (was Re: [Zope3-dev] XXX Roundup)

2005-12-16 Thread Gary Poster


On Dec 16, 2005, at 4:20 PM, Benji York wrote:

Gary zope/i18n/format.py:141 and 149


Yup: the pytz StaticTzInfo is being used in a non-API way, and while  
pickling works, unpickling doesn't (ew!).


Here's the interactive prompt example, if anyone cares.

 import pytz.tzinfo
 tz = pytz.tzinfo.StaticTzInfo()
 import pickle
 import datetime
 delta = datetime.timedelta(hours=-5)
 delta
datetime.timedelta(-1, 68400)
 tz._utcoffset = delta
 pickle.dumps(tz)
'cpytz\n_p\np0\n(Ntp1\nRp2\n.'
 pickle.loads(pickle.dumps(tz))
Traceback (most recent call last):
  File stdin, line 1, in ?
  File /home/gary/z4i/var/opt/python/lib/python2.4/pickle.py, line  
1394, in loads

return Unpickler(file).load()
  File /home/gary/z4i/var/opt/python/lib/python2.4/pickle.py, line  
872, in load

dispatch[key](self)
  File /home/gary/z4i/var/opt/python/lib/python2.4/pickle.py, line  
1153, in load_reduce

value = func(*args)
  File /home/gary/z4i/var/src/zope3/src/pytz/__init__.py, line  
163, in _p

return unpickler(*args)
  File /home/gary/z4i/var/src/zope3/src/pytz/tzinfo.py, line 340,  
in unpicklertz = pytz.timezone(zone)
  File /home/gary/z4i/var/src/zope3/src/pytz/__init__.py, line 47,  
in timezonezone = _munge_zone(zone)
  File /home/gary/z4i/var/src/zope3/src/pytz/__init__.py, line 71,  
in _munge_zone

return zone.replace('+', '_plus_').replace('-', '_minus_')
AttributeError: 'NoneType' object has no attribute 'replace'

This is not pytz's fault: it wasn't designed to work the way that the  
format module is using it, as Stuart points out following Philipp's  
'XXX'.


I think I can fix it by using the pytz.reference.FixedOffset class.   
That's what I'll try to do now.


Gary




___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: zope.i18n.format pytz usage (was Re: [Zope3-dev] XXX Roundup)

2005-12-16 Thread Gary Poster


On Dec 16, 2005, at 4:56 PM, Gary Poster wrote:
...
I think I can fix it by using the pytz.reference.FixedOffset  
class.  That's what I'll try to do now.


BTW, let me note that this is still bad.  These things *should not*  
be persisted: they will generate lots and lots of little instances.   
Maybe the code should use a class that refuses to be persisted instead.


Another approach would be to copy over zope.app.datetimeutils into  
zope.i18n: it has already addressed the problem.


Gary
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in Zope3 branches 3.2 2.4 Linux remy

2005-12-16 Thread buildbot
The Buildbot has detected a failed build of Zope3 branches 3.2 2.4 Linux remy.

Buildbot URL: http://buildbot.zope.org/

Build Reason: changes
Build Source Stamp: 2281
Blamelist: jim

BUILD FAILED: failed test

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] buildbot failure in Zope3 branches 3.2 2.4 Linux remy

2005-12-16 Thread Benji York

Tim Peters wrote:

I hesitate to suggest that the buildbot run with -vv too, but it sure
would have saved Jim and me time in this case.


+1
--
Benji York
Senior Software Engineer
Zope Corporation
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in Zope3 branches 3.2 2.4 Linux remy

2005-12-16 Thread buildbot
The Buildbot has detected a failed build of Zope3 branches 3.2 2.4 Linux remy.

Buildbot URL: http://buildbot.zope.org/

Build Reason: changes
Build Source Stamp: 2282
Blamelist: jim

BUILD FAILED: failed test

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com